parent
9d53098427
commit
f60b8eecfd
13
src/core.c
13
src/core.c
|
@ -4629,3 +4629,16 @@ void mouseGetPositionInWindow(int win, int* x, int* y)
|
||||||
*y -= window->rect.top;
|
*y -= window->rect.top;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool mouseHitTestInWindow(int win, int left, int top, int right, int bottom)
|
||||||
|
{
|
||||||
|
Window* window = windowGetWindow(win);
|
||||||
|
if (window != NULL) {
|
||||||
|
left += window->rect.left;
|
||||||
|
top += window->rect.top;
|
||||||
|
right += window->rect.left;
|
||||||
|
bottom += window->rect.top;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _mouse_click_in(left, top, right, bottom);
|
||||||
|
}
|
||||||
|
|
|
@ -637,5 +637,6 @@ bool _vcr_load_record(STRUCT_51E2F0* ptr, File* stream);
|
||||||
int screenGetWidth();
|
int screenGetWidth();
|
||||||
int screenGetHeight();
|
int screenGetHeight();
|
||||||
void mouseGetPositionInWindow(int win, int* x, int* y);
|
void mouseGetPositionInWindow(int win, int* x, int* y);
|
||||||
|
bool mouseClickInWindow(int win, int left, int top, int right, int bottom);
|
||||||
|
|
||||||
#endif /* CORE_H */
|
#endif /* CORE_H */
|
||||||
|
|
|
@ -2843,7 +2843,7 @@ int _wmWorldMapFunc(int a1)
|
||||||
|
|
||||||
int mouseX;
|
int mouseX;
|
||||||
int mouseY;
|
int mouseY;
|
||||||
mouseGetPosition(&mouseX, &mouseY);
|
mouseGetPositionInWindow(gWorldmapWindow, &mouseX, &mouseY);
|
||||||
|
|
||||||
int v4 = gWorldmapOffsetX + mouseX - WM_VIEW_X;
|
int v4 = gWorldmapOffsetX + mouseX - WM_VIEW_X;
|
||||||
int v5 = gWorldmapOffsetY + mouseY - WM_VIEW_Y;
|
int v5 = gWorldmapOffsetY + mouseY - WM_VIEW_Y;
|
||||||
|
@ -2958,7 +2958,7 @@ int _wmWorldMapFunc(int a1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((mouseEvent & MOUSE_EVENT_LEFT_BUTTON_DOWN) != 0 && (mouseEvent & MOUSE_EVENT_LEFT_BUTTON_REPEAT) == 0) {
|
if ((mouseEvent & MOUSE_EVENT_LEFT_BUTTON_DOWN) != 0 && (mouseEvent & MOUSE_EVENT_LEFT_BUTTON_REPEAT) == 0) {
|
||||||
if (_mouse_click_in(WM_VIEW_X, WM_VIEW_Y, 472, 465)) {
|
if (mouseHitTestInWindow(gWorldmapWindow, WM_VIEW_X, WM_VIEW_Y, 472, 465)) {
|
||||||
if (!gWorldmapIsTravelling && !_wmGenData && abs(_world_xpos - v4) < 5 && abs(_world_ypos - v5) < 5) {
|
if (!gWorldmapIsTravelling && !_wmGenData && abs(_world_xpos - v4) < 5 && abs(_world_ypos - v5) < 5) {
|
||||||
_wmGenData = true;
|
_wmGenData = true;
|
||||||
worldmapWindowRefresh();
|
worldmapWindowRefresh();
|
||||||
|
@ -3007,7 +3007,7 @@ int _wmWorldMapFunc(int a1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (_mouse_click_in(WM_VIEW_X, WM_VIEW_Y, 472, 465)) {
|
if (mouseHitTestInWindow(gWorldmapWindow, WM_VIEW_X, WM_VIEW_Y, 472, 465)) {
|
||||||
_wmPartyInitWalking(v4, v5);
|
_wmPartyInitWalking(v4, v5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4276,7 +4276,9 @@ int worldmapWindowInit()
|
||||||
colorCycleDisable();
|
colorCycleDisable();
|
||||||
gameMouseSetCursor(MOUSE_CURSOR_ARROW);
|
gameMouseSetCursor(MOUSE_CURSOR_ARROW);
|
||||||
|
|
||||||
gWorldmapWindow = windowCreate(0, 0, WM_WINDOW_WIDTH, WM_WINDOW_HEIGHT, _colorTable[0], WINDOW_FLAG_0x04);
|
int worldmapWindowX = (screenGetWidth() - WM_WINDOW_WIDTH) / 2;
|
||||||
|
int worldmapWindowY = (screenGetHeight() - WM_WINDOW_HEIGHT) / 2;
|
||||||
|
gWorldmapWindow = windowCreate(worldmapWindowX, worldmapWindowY, WM_WINDOW_WIDTH, WM_WINDOW_HEIGHT, _colorTable[0], WINDOW_FLAG_0x04);
|
||||||
if (gWorldmapWindow == -1) {
|
if (gWorldmapWindow == -1) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -4884,7 +4886,7 @@ void worldmapWindowHandleMouseScrolling()
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
mouseGetPosition(&x, &y);
|
mouseGetPositionInWindow(gWorldmapWindow, &x, &y);
|
||||||
|
|
||||||
int dx = 0;
|
int dx = 0;
|
||||||
if (x == 639) {
|
if (x == 639) {
|
||||||
|
|
Loading…
Reference in New Issue