diff --git a/include/game_options.h b/include/game_options.h index 73f320bf0..e01506673 100644 --- a/include/game_options.h +++ b/include/game_options.h @@ -42,11 +42,15 @@ enum windowColor NUM_WINDOW_COLORS, }; +enum GameControls +{ + CONTROLS_GBA, + CONTROLS_DS, +}; + // size: 0x10 typedef struct GameOptions { - // TODO: find where Controls/Touch Screen are in this structure in PMD Blue - /* 0x0 */ u8 dungeonSpeed; /* 0x1 */ u8 FarOffPals; /* 0x2 */ bool8 damageTurn; @@ -54,8 +58,8 @@ typedef struct GameOptions /* 0x4 */ u8 mapOption; /* 0x5 */ u8 fill5[3]; /* 0x8 */ u8 windowColor; - /* 0x9 */ u8 unk9; // maybe Controls? - /* 0xA */ u8 unkA; // maybe Touch Screen? + /* 0x9 */ u8 controls; // DS only + /* 0xA */ bool8 touchScreen; // DS only /* 0xB */ u8 playerGender; /* 0xC */ u8 unkC; } GameOptions; @@ -63,9 +67,9 @@ typedef struct GameOptions extern GameOptions *gGameOptionsRef; GameOptions *GetGameOptions(void); -bool8 GameOptionsNotChange(GameOptions *); +bool8 GameOptionsNotChange(GameOptions *newOptions); void InitializeGameOptions(bool8 initializeGender); void LoadGameOptions(void); void SetWindowBGColor(void); -#endif // GUARD_GAME_OPTIONS_H \ No newline at end of file +#endif // GUARD_GAME_OPTIONS_H diff --git a/src/code_8012A18.c b/src/code_8012A18.c index 0c30d3175..5c1553b56 100644 --- a/src/code_8012A18.c +++ b/src/code_8012A18.c @@ -13,7 +13,7 @@ void sub_8012A18() { UpdateSoundEffectCounters(); DrawDialogueBoxString(); - nullsub_8(gGameOptionsRef->unkA); + nullsub_8(gGameOptionsRef->touchScreen); sub_8005180(); sub_80060EC(); WaitForNextFrameAndAdvanceRNG(); diff --git a/src/code_809C5C4.c b/src/code_809C5C4.c index 3b7034290..b092846ed 100644 --- a/src/code_809C5C4.c +++ b/src/code_809C5C4.c @@ -4,7 +4,12 @@ #include "game_options.h" #include "event_flag.h" #include "ground_main.h" +#include "ground_place.h" #include "code_80A26CC.h" +#include "constants/ground_map.h" +#include "constants/friend_area.h" + +// This file effectively does nothing on GBA. struct unkStruct_3001B68 { @@ -16,47 +21,48 @@ struct unkStruct_3001B68 u8 unkD; u8 unkE; u32 unk10; - s16 unk14; - s16 unk16; - u8 unk18; + s16 mapId; + s16 groundPlaceId; + u8 friendAreaId; u8 unk19; u32 unk1C; u8 unk20; }; -static IWRAM_INIT struct unkStruct_3001B68 *gUnknown_3001B68 = {NULL}; +static IWRAM_INIT struct unkStruct_3001B68 *sUnknown_3001B68 = {NULL}; UNUSED static const u8 sUnused[4] = {0}; -void sub_809C63C(); -u8 sub_809C740(void); -void nullsub_107(); -void nullsub_108(); -void nullsub_109(); -void nullsub_110(); -void nullsub_111(); -void nullsub_112(); -void nullsub_113(); -void nullsub_114(); -void nullsub_115(); -void nullsub_116(); +bool8 sub_809C740(void); +void sub_809C63C(void); + +static void nullsub_107(); +static void nullsub_108(); +static void nullsub_109(); +static void nullsub_110(); +static void nullsub_111(); +static void nullsub_112(); +static void nullsub_113(); +static void nullsub_114(); +static void nullsub_115(); +static void nullsub_116(); void sub_809C5C4(void) { - gUnknown_3001B68 = MemoryAlloc(sizeof(struct unkStruct_3001B68), 6); - gUnknown_3001B68->unk0 = 0; - gUnknown_3001B68->unk4 = 0; - gUnknown_3001B68->unk8 = 0; - gUnknown_3001B68->unkA = 0; - gUnknown_3001B68->unkD = 0; - gUnknown_3001B68->unkE = 0; - gUnknown_3001B68->unk10 = 0; - gUnknown_3001B68->unk14 = 0xffff; - gUnknown_3001B68->unk16 = 0x23; - gUnknown_3001B68->unk18 = 0; - gUnknown_3001B68->unk19 = 0x3f; - gUnknown_3001B68->unk1C = 0; - gUnknown_3001B68->unk20 = 0; + sUnknown_3001B68 = MemoryAlloc(sizeof(struct unkStruct_3001B68), 6); + sUnknown_3001B68->unk0 = 0; + sUnknown_3001B68->unk4 = 0; + sUnknown_3001B68->unk8 = 0; + sUnknown_3001B68->unkA = 0; + sUnknown_3001B68->unkD = 0; + sUnknown_3001B68->unkE = 0; + sUnknown_3001B68->unk10 = 0; + sUnknown_3001B68->mapId = -1; + sUnknown_3001B68->groundPlaceId = GROUND_PLACE_DIRECTION; + sUnknown_3001B68->friendAreaId = 0; + sUnknown_3001B68->unk19 = 0x3f; + sUnknown_3001B68->unk1C = 0; + sUnknown_3001B68->unk20 = 0; nullsub_107(); sub_809C63C(); } @@ -66,20 +72,19 @@ void sub_809C618(void) sub_809C63C(); nullsub_107(); nullsub_108(); - MemoryFree(gUnknown_3001B68); - gUnknown_3001B68 = NULL; + FREE_AND_SET_NULL(sUnknown_3001B68); } void sub_809C63C(void) { nullsub_108(); - gUnknown_3001B68->unk1C = 0; - gUnknown_3001B68->unk20 = 0; + sUnknown_3001B68->unk1C = 0; + sUnknown_3001B68->unk20 = 0; } void sub_809C658(void) { - switch(gUnknown_3001B68->unkA) { + switch(sUnknown_3001B68->unkA) { case 3: nullsub_111(); nullsub_112(); @@ -108,10 +113,9 @@ void sub_809C658(void) void sub_809C6CC(u16 param_1) { - if(gUnknown_3001B68->unk8 != param_1) - { - gUnknown_3001B68->unk8 = param_1; - gUnknown_3001B68->unkE = 0; + if (sUnknown_3001B68->unk8 != param_1) { + sUnknown_3001B68->unk8 = param_1; + sUnknown_3001B68->unkE = 0; } } @@ -130,139 +134,137 @@ void sub_809C6EC(void) } } -u16 sub_809C724(void) +UNUSED static u16 sub_809C724(void) { - return gUnknown_3001B68->unk8; + return sUnknown_3001B68->unk8; } -u8 sub_809C730(void) +bool8 sub_809C730(void) { - return sub_809C740(); + return sub_809C740(); } -u8 sub_809C740(void) +bool8 sub_809C740(void) { - if(gUnknown_3001B68->unk0 == 0) - return 1; - else - return 0; + if (sUnknown_3001B68->unk0 == 0) + return TRUE; + else + return FALSE; } // Called in a number of places, like when the player changes the team leader in sub_80278B4(). void nullsub_104(void) -{ } +{ + +} void sub_809C760(void) { - gUnknown_3001B68->unkE = 1; + sUnknown_3001B68->unkE = 1; } -void sub_809C770(s16 param_1, s16 param_2) +void sub_809C770(s16 mapId_, s16 groundPlaceId_) { - u8 uVar2; + u8 friendAreaId; u8 uVar3; s32 iVar5; u32 uVar6; + s32 mapId = mapId_; + s32 groundPlaceId = groundPlaceId_; - s32 param_1_s32; - s32 param_2_s32; - - param_1_s32 = param_1; - param_2_s32 = param_2; - - if (gUnknown_3001B68->unkE != 0) { - gUnknown_3001B68->unkE = 0; + if (sUnknown_3001B68->unkE != 0) { + sUnknown_3001B68->unkE = 0; return; } - if (gUnknown_3001B68->unk8 == 0) { + if (sUnknown_3001B68->unk8 == 0) { sub_809C6EC(); } - uVar2 = gUnknown_3001B68->unk18; - uVar3 = gUnknown_3001B68->unk19; - switch(param_2_s32) { - case 9: - uVar2 = MapIdToFriendAreaId(param_1_s32); - if (uVar2 == 0) { + friendAreaId = sUnknown_3001B68->friendAreaId; + uVar3 = sUnknown_3001B68->unk19; + switch (groundPlaceId) { + case GROUND_PLACE_FRIEND_AREAS: + friendAreaId = MapIdToFriendAreaId(mapId); + if (friendAreaId == FRIEND_AREA_NONE) { return; } uVar6 = 1; break; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 10: - case 0xb: + case GROUND_PLACE_SQUARE: + case GROUND_PLACE_SQUARE_2: + case GROUND_PLACE_POKEMON_SQUARE: + case GROUND_PLACE_WHISCASH_POND: + case GROUND_PLACE_PELIPPER_POST_OFFICE: + case GROUND_PLACE_PELIPPER_POST_OFFICE_INSIDE: + case GROUND_PLACE_MAKUHITA_DOJO: + case GROUND_PLACE_MAKUHITA_DOJO_INSIDE: + case GROUND_PLACE_LUMINOUS_CAVE: + case GROUND_PLACE_TEAM_BASE: + case GROUND_PLACE_TEAM_BASE_INSIDE: uVar6 = 1; - uVar2 = 0; + friendAreaId = FRIEND_AREA_NONE; break; - case 0x23: - switch((s16)(param_1_s32)) { - case 0xA4: - case 0xA5: - case 0xA8: - case 0xA9: - case 0xAA: - case 0xAE: - case 0xAF: - case 0xB0: - case 0xB1: + case GROUND_PLACE_DIRECTION: + switch((s16)(mapId)) { + case MAP_FUGITIVES_FISSURE: + case MAP_FUGITIVES_FIRE: + case MAP_FUGITIVES_SNOW_ROAD: + case MAP_FUGITIVES_SNOW_FOREST: + case MAP_FUGITIVES_BLIZZARD_ROAD: + case MAP_NIGHTMARE: + case MAP_NIGHT_SKY_1: + case MAP_NIGHT_SKY_2: + case MAP_THE_END: uVar6 = 0; break; default: return; } break; - case 0x24: - case 0x25: - case 0x26: + case GROUND_PLACE_NEW_GAME: + case GROUND_PLACE_SCENE: + case GROUND_PLACE_INVALIDITY: uVar6 = 0; break; default: - switch((s16)(param_2_s32 - 0xc)) { - case 1: + switch((s16)(groundPlaceId)) { + case GROUND_PLACE_TINY_WOODS: iVar5 = 0; break; - case 6: - case 7: + case GROUND_PLACE_MT_THUNDER: + case GROUND_PLACE_MT_THUNDER_MID: iVar5 = 7; break; - case 8: - case 9: + case GROUND_PLACE_GREAT_CANYON: + case GROUND_PLACE_HILL_OF_THE_ANCIENTS: iVar5 = 9; break; - case 10: + case GROUND_PLACE_LAPIS_CAVE: iVar5 = 10; break; - case 0xc: - case 0xd: + case GROUND_PLACE_MT_BLAZE: + case GROUND_PLACE_MT_BLAZE_MID: iVar5 = 0xb; break; - case 0xe: - case 0xf: + case GROUND_PLACE_FROSTY_FOREST: + case GROUND_PLACE_FROSTY_CLEARING: iVar5 = 0xd; break; - case 0x10: - case 0x11: + case GROUND_PLACE_MT_FREEZE: + case GROUND_PLACE_MT_FREEZE_MID: iVar5 = 0xf; break; - case 0x12: - case 0x13: + case GROUND_PLACE_MAGMA_CAVERN: + case GROUND_PLACE_MAGMA_CAVERN_MID: iVar5 = 0x11; break; - case 0x14: - case 0x15: + case GROUND_PLACE_SKY_TOWER: + case GROUND_PLACE_SKY_TOWER_MID: iVar5 = 0x13; break; - case 0x16: + case GROUND_PLACE_WESTERN_CAVE: iVar5 = 0x20; break; - case 0: + case GROUND_PLACE_DUNGEON: default: iVar5 = (s16)GetScriptVarValue(NULL,DUNGEON_ENTER); break; @@ -275,70 +277,70 @@ void sub_809C770(s16 param_1, s16 param_2) uVar6 = 2; break; } - if (gUnknown_3001B68->unk10 != uVar6) { - gUnknown_3001B68->unk0 = 2; - gUnknown_3001B68->unkC = 1; - gUnknown_3001B68->unk20 = 1; + + if (sUnknown_3001B68->unk10 != uVar6) { + sUnknown_3001B68->unk0 = 2; + sUnknown_3001B68->unkC = 1; + sUnknown_3001B68->unk20 = 1; } - else - { + else { if (uVar6 == 1) { - if ((uVar2 != gUnknown_3001B68->unk18) || - (gUnknown_3001B68->unk14 != param_1_s32)) { - gUnknown_3001B68->unkC = 1; - gUnknown_3001B68->unk20 = 1; + if (friendAreaId != sUnknown_3001B68->friendAreaId || sUnknown_3001B68->mapId != mapId) { + sUnknown_3001B68->unkC = 1; + sUnknown_3001B68->unk20 = 1; } else { - if ((uVar2 == 0) && (gUnknown_3001B68->unk16 != param_2_s32)) { - gUnknown_3001B68->unkC = 1; + if (friendAreaId == FRIEND_AREA_NONE && sUnknown_3001B68->groundPlaceId != groundPlaceId) { + sUnknown_3001B68->unkC = 1; } } } - else if ((uVar6 == 2) && - ((uVar3 != gUnknown_3001B68->unk19 || (gUnknown_3001B68->unk16 != param_2_s32)))) + else if (uVar6 == 2 && + (uVar3 != sUnknown_3001B68->unk19 || (sUnknown_3001B68->groundPlaceId != groundPlaceId))) { - gUnknown_3001B68->unkC = 1; - gUnknown_3001B68->unk20 = 1; + sUnknown_3001B68->unkC = 1; + sUnknown_3001B68->unk20 = 1; } } - if (gUnknown_3001B68->unkC != 0) { - gUnknown_3001B68->unk10 = uVar6; - gUnknown_3001B68->unk14 = param_1_s32; - gUnknown_3001B68->unk16 = param_2_s32; - gUnknown_3001B68->unk18 = uVar2; - gUnknown_3001B68->unk19 = uVar3; - if (gUnknown_3001B68->unk8 != 4) { - gUnknown_3001B68->unkC = 0; - gUnknown_3001B68->unk20 = 0; + + if (sUnknown_3001B68->unkC != 0) { + sUnknown_3001B68->unk10 = uVar6; + sUnknown_3001B68->mapId = mapId; + sUnknown_3001B68->groundPlaceId = groundPlaceId; + sUnknown_3001B68->friendAreaId = friendAreaId; + sUnknown_3001B68->unk19 = uVar3; + if (sUnknown_3001B68->unk8 != 4) { + sUnknown_3001B68->unkC = 0; + sUnknown_3001B68->unk20 = 0; } } } -void nullsub_105(void) {} +void nullsub_105(void) +{ + +} void sub_809CA20(void) { - u16 *puVar1; - - if (gUnknown_3001B68->unk0 != 0) { - gUnknown_3001B68->unk0 = 0; - gUnknown_3001B68->unk4 = 0x1f; - gUnknown_3001B68->unkC = 1; + if (sUnknown_3001B68->unk0 != 0) { + sUnknown_3001B68->unk0 = 0; + sUnknown_3001B68->unk4 = 0x1f; + sUnknown_3001B68->unkC = 1; } - if (gUnknown_3001B68->unkC != 0) { - puVar1 = &gUnknown_3001B68->unk8; - gUnknown_3001B68->unkA = *puVar1; - if ((*puVar1 == 4) && (gUnknown_3001B68->unk10 == 0)) { - gUnknown_3001B68->unkA = 2; - gUnknown_3001B68->unk1C = 0; - gUnknown_3001B68->unk20 = 0; + if (sUnknown_3001B68->unkC != 0) { + sUnknown_3001B68->unkA = sUnknown_3001B68->unk8; + if (sUnknown_3001B68->unk8 == 4 && sUnknown_3001B68->unk10 == 0) { + sUnknown_3001B68->unkA = 2; + sUnknown_3001B68->unk1C = 0; + sUnknown_3001B68->unk20 = 0; } - switch(gUnknown_3001B68->unkA) { + switch (sUnknown_3001B68->unkA) { case 3: nullsub_111(); nullsub_113(); nullsub_112(); - gUnknown_3001B68->unkD = 1; + sUnknown_3001B68->unkD = 1; break; case 4: nullsub_114(); @@ -359,11 +361,10 @@ void sub_809CA20(void) nullsub_108(); break; } - gUnknown_3001B68->unkC = 0; - + sUnknown_3001B68->unkC = 0; } else { - switch(gUnknown_3001B68->unkA) { + switch (sUnknown_3001B68->unkA) { case 3: nullsub_113(); break; @@ -378,14 +379,57 @@ void sub_809CA20(void) } } -void nullsub_106(void) {} -void nullsub_107(void) {} -void nullsub_108(void) {} -void nullsub_109(void) {} -void nullsub_110(void) {} -void nullsub_111(void) {} -void nullsub_112(void) {} -void nullsub_113(void) {} -void nullsub_114(void) {} -void nullsub_115(void) {} -void nullsub_116(void) {} +void nullsub_106(void) +{ + +} + +static void nullsub_107(void) +{ + +} + +static void nullsub_108(void) +{ + +} + +static void nullsub_109(void) +{ + +} + +static void nullsub_110(void) +{ + +} + +static void nullsub_111(void) +{ + +} + +static void nullsub_112(void) +{ + +} + +static void nullsub_113(void) +{ + +} + +static void nullsub_114(void) +{ + +} + +static void nullsub_115(void) +{ + +} + +static void nullsub_116(void) +{ + +} diff --git a/src/debug_field_map.c b/src/debug_field_map.c index ae57c5ec2..0fcd23418 100644 --- a/src/debug_field_map.c +++ b/src/debug_field_map.c @@ -143,7 +143,7 @@ UNUSED static void DebugMapViewer(void) DrawDialogueBoxString(); sub_8005838(NULL, 0); sub_80060EC(); - nullsub_8(gGameOptionsRef->unkA); + nullsub_8(gGameOptionsRef->touchScreen); sub_8005180(); sub_8099BE4(); sub_8099744(); diff --git a/src/dungeon_main.c b/src/dungeon_main.c index 6d97aa3da..bd9671173 100644 --- a/src/dungeon_main.c +++ b/src/dungeon_main.c @@ -356,7 +356,7 @@ void DungeonHandlePlayerInput(void) break; } - if (gGameOptionsRef->unk9 == 0 + if (gGameOptionsRef->controls == CONTROLS_GBA && (gRealInputs.pressed & B_BUTTON || (!unkBool && bPress)) && unkPtr->unk1821A != 0) { @@ -386,7 +386,7 @@ void DungeonHandlePlayerInput(void) } highlightTiles = FALSE; - if (gGameOptionsRef->unk9 == 0) { + if (gGameOptionsRef->controls == CONTROLS_GBA) { if (gRealInputs.shortPress & R_BUTTON || rPress || gRealInputs.pressed & START_BUTTON) { highlightTiles = TRUE; } diff --git a/src/dungeon_menu_others.c b/src/dungeon_menu_others.c index a0564ea3e..1b9953b0a 100644 --- a/src/dungeon_menu_others.c +++ b/src/dungeon_menu_others.c @@ -937,7 +937,7 @@ static void PrintHintsMenu(void) static void ShowChosenHintWindow(s32 hintId) { - bool8 unk9 = (gGameOptionsRef->unk9 != 0); + bool8 dsControls = (gGameOptionsRef->controls != CONTROLS_GBA); while (1) { bool8 dpadPressed = FALSE; @@ -981,7 +981,7 @@ static void ShowChosenHintWindow(s32 hintId) gDungeonMenu.leftRightArrowsPos.y = ((gWindows[0].y + 1) * 8) - 2; sub_80073B8(0); PrintFormattedStringOnWindow(16 + hintId * 8, 0, gHintsNames[hintId], 0, '\0'); - PrintFormattedStringOnWindow(8, 16, gHintsDescriptions[unk9][hintId], 0, '\0'); + PrintFormattedStringOnWindow(8, 16, gHintsDescriptions[dsControls][hintId], 0, '\0'); sub_80073E0(0); while (1) { diff --git a/src/dungeon_vram.c b/src/dungeon_vram.c index 71de2c7cd..d337c353c 100644 --- a/src/dungeon_vram.c +++ b/src/dungeon_vram.c @@ -210,7 +210,7 @@ static void sub_803E490(u32 unused) if(gDungeon->unk181e8.unk18215 != 0 && gDungeon->unk1BDD4.unk1C06C != 3) sub_8004AF0(gUnknown_203B40D, gUnknown_202EE8C, 0xA0, 0x20, gDungeonBrightness, gDungeon->colorRamp); - nullsub_8(gGameOptionsRef->unkA); + nullsub_8(gGameOptionsRef->touchScreen); sub_8005180(); nullsub_12(); sub_80060EC(); @@ -243,7 +243,7 @@ static void sub_803E490(u32 unused) void sub_803E668(u32 unused) { gUnknown_202EDD4++; - nullsub_8(gGameOptionsRef->unkA); + nullsub_8(gGameOptionsRef->touchScreen); sub_8005180(); nullsub_12(); sub_8005838(NULL, 0); diff --git a/src/friend_areas_map_util.c b/src/friend_areas_map_util.c index b482416e7..a50d54d68 100644 --- a/src/friend_areas_map_util.c +++ b/src/friend_areas_map_util.c @@ -378,7 +378,7 @@ void FriendAreasMap_RunFrameActions(void) AnimateSprites(); sub_8004AF0(FadeScreen(), gFriendAreasMapPtr->unk4C4C, 0xB0, 16, gFriendAreasMapPtr->brightness, NULL); sub_8005838(NULL, 0); - nullsub_8(gGameOptionsRef->unkA); + nullsub_8(gGameOptionsRef->touchScreen); sub_8005180(); sub_80060EC(); IncrementPlayTime(gPlayTimeRef); diff --git a/src/game_options.c b/src/game_options.c index 23156bf42..8b8b705b1 100644 --- a/src/game_options.c +++ b/src/game_options.c @@ -30,8 +30,8 @@ void InitializeGameOptions(bool8 initializeGender) { gGameOptionsRef->playerGender = MALE; } - gGameOptionsRef->unk9 = 0; - gGameOptionsRef->unkA = 0; + gGameOptionsRef->controls = CONTROLS_GBA; + gGameOptionsRef->touchScreen = 0; gGameOptionsRef->dungeonSpeed = DUNGEON_SPEED_SLOW; gGameOptionsRef->FarOffPals = FAROFFPALS_LOCK; gGameOptionsRef->damageTurn = TRUE; @@ -41,27 +41,27 @@ void InitializeGameOptions(bool8 initializeGender) SetWindowBGColor(); } -bool8 GameOptionsNotChange(GameOptions *r0) +bool8 GameOptionsNotChange(GameOptions *newOptions) { - if (gGameOptionsRef->windowColor != r0->windowColor) + if (gGameOptionsRef->windowColor != newOptions->windowColor) return FALSE; - if (gGameOptionsRef->unk9 != r0->unk9) + if (gGameOptionsRef->controls != newOptions->controls) return FALSE; - if (gGameOptionsRef->unkA != r0->unkA) + if (gGameOptionsRef->touchScreen != newOptions->touchScreen) return FALSE; - if (gGameOptionsRef->playerGender != r0->playerGender) + if (gGameOptionsRef->playerGender != newOptions->playerGender) return FALSE; - if (gGameOptionsRef->dungeonSpeed != r0->dungeonSpeed) + if (gGameOptionsRef->dungeonSpeed != newOptions->dungeonSpeed) return FALSE; - if (gGameOptionsRef->FarOffPals != r0->FarOffPals) + if (gGameOptionsRef->FarOffPals != newOptions->FarOffPals) return FALSE; - if (gGameOptionsRef->damageTurn != r0->damageTurn) + if (gGameOptionsRef->damageTurn != newOptions->damageTurn) return FALSE; - if (gGameOptionsRef->gridEnable != r0->gridEnable) + if (gGameOptionsRef->gridEnable != newOptions->gridEnable) return FALSE; - if (gGameOptionsRef->mapOption != r0->mapOption) + if (gGameOptionsRef->mapOption != newOptions->mapOption) return FALSE; - if (gGameOptionsRef->unkC != r0->unkC) + if (gGameOptionsRef->unkC != newOptions->unkC) return FALSE; return TRUE; @@ -79,7 +79,7 @@ void WriteGameOptionsBits(DataSerializer *param_1) WriteBits(param_1, &gGameOptionsRef->windowColor, 2); - if(gGameOptionsRef->unk9 != 0) + if (gGameOptionsRef->controls != CONTROLS_GBA) { puVar2 = &neg_1; } @@ -89,7 +89,7 @@ void WriteGameOptionsBits(DataSerializer *param_1) } WriteBits(param_1, puVar2, 1); - if(gGameOptionsRef->unkA != 0) + if(gGameOptionsRef->touchScreen) { puVar2 = &neg_1; } @@ -160,10 +160,10 @@ void ReadGameOptionsBits(DataSerializer *param_1) gGameOptionsRef->windowColor = byteArray[0] & NUM_WINDOW_COLORS; ReadBits(param_1, byteArray, 1); - gGameOptionsRef->unk9 = byteArray[0] & 1; + gGameOptionsRef->controls = byteArray[0] & 1; ReadBits(param_1, byteArray, 1); - gGameOptionsRef->unkA = byteArray[0] & 1; + gGameOptionsRef->touchScreen = byteArray[0] & 1; ReadBits(param_1, byteArray, 1); gGameOptionsRef->playerGender = byteArray[0] & 1; diff --git a/src/main_loops.c b/src/main_loops.c index 9da3788d7..e724f68f8 100644 --- a/src/main_loops.c +++ b/src/main_loops.c @@ -281,7 +281,7 @@ static void MainLoops_RunFrameActions(u32 unused) { DrawDialogueBoxString(); sub_8005838(NULL, 0); - nullsub_8(gGameOptionsRef->unkA); + nullsub_8(gGameOptionsRef->touchScreen); sub_8005180(); // Extra call here in blue. Seems to be for 2nd screen sprites diff --git a/src/world_map.c b/src/world_map.c index 173aab7de..82ed190e2 100644 --- a/src/world_map.c +++ b/src/world_map.c @@ -404,7 +404,7 @@ static void WorldMap_RunFrameActions(void) AnimateSprites(TRUE); FadeScreen(); sub_8005838(NULL, 0); - nullsub_8(gGameOptionsRef->unkA); + nullsub_8(gGameOptionsRef->touchScreen); sub_8005180(); sub_80060EC(); IncrementPlayTime(gPlayTimeRef);