diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm.inc.h | 13 | ||||
-rw-r--r-- | include/battle.h | 27 | ||||
-rw-r--r-- | include/contest_painting.h | 8 | ||||
-rw-r--r-- | include/decoration.h | 19 | ||||
-rw-r--r-- | include/easy_chat.h | 1 | ||||
-rw-r--r-- | include/flags.h | 4 | ||||
-rw-r--r-- | include/global.fieldmap.h | 4 | ||||
-rw-r--r-- | include/global.h | 217 | ||||
-rw-r--r-- | include/item.h | 19 | ||||
-rw-r--r-- | include/pokedex.h | 2 | ||||
-rw-r--r-- | include/pokemon.h | 1 | ||||
-rw-r--r-- | include/record_mixing.h | 16 | ||||
-rw-r--r-- | include/tv.h | 23 | ||||
-rw-r--r-- | include/vars.h | 11 |
14 files changed, 295 insertions, 70 deletions
diff --git a/include/asm.inc.h b/include/asm.inc.h index 62a8ac1cc..3db79b128 100644 --- a/include/asm.inc.h +++ b/include/asm.inc.h @@ -31,7 +31,7 @@ void StoreWordInTwoHalfwords(u16 *, u32); void LoadWordFromTwoHalfwords(u16 *, u32 *); // src/daycare.o -u8 daycare_count_pokemon(u8 *); +u8 Daycare_CountPokemon(struct BoxPokemon *); // asm/daycare.o void sub_8041324(struct BoxPokemon *, void *); @@ -288,12 +288,12 @@ void sub_80BEA50(u16); void sub_80BEA5C(u16); bool8 GetPriceReduction(u8); void sub_80BEE84(u16); -u8 sub_80BF0B8(u32); +size_t sub_80BF0B8(int); void sub_80BF478(void); u16 sub_80BF674(u16 species); s8 sub_80BF720(TVShow *); -u8 sub_80BF77C(u32); -void sub_80BFD44(void *, u32, u8); +bool8 sub_80BF77C(u16); +void sub_80BFD44(u8 *, u32, u8); void sub_80C0514(void *, u32, u8); // src/tv.o @@ -328,7 +328,7 @@ void sub_80C8F34(u8); // asm/easy_chat.o void InitEasyChatPhrases(void); u8* sub_80EB3FC(u8 *, u16); -u8 ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16); +u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16); // asm/pokenav.o void sub_80EBA5C(void); @@ -422,6 +422,9 @@ void sub_8134AC0(void *); // src/player_pc.o void NewGameInitPCItems(void); +// asm/hall_of_fame.o +void sub_8143648(u16 paletteTag, u8 arg1); + // src/diploma.o void sub_8145D88(void); diff --git a/include/battle.h b/include/battle.h index f05c7369d..be474b59f 100644 --- a/include/battle.h +++ b/include/battle.h @@ -124,17 +124,22 @@ struct BattleStruct /* 0x2000000 */ struct UnknownStruct4 { - u8 filler0[0x3]; - u16 unk4; - u16 unk6; - u8 unk8; - u8 unk9; - u8 fillerA[0x9]; - u8 taunt:4; - u8 unkC:4; - u8 fillerD[0x2]; - u8 unk16; - u8 filler17[0x4]; + /*0x00*/ u8 filler0[0x3]; + /*0x04*/ u16 unk4; + /*0x06*/ u16 unk6; + /*0x08*/ u8 unk8; + /*0x09*/ u8 unk9; + /*0x0A*/ u8 unkA; + u8 fillerB[4]; + u8 unkF_0:4; + u8 unkF_4:4; + u8 filler10[3]; + /*0x13*/ u8 taunt:4; + /*0x13*/ u8 unkC:4; + /*0x14*/ u8 unk14; + /*0x15*/ u8 unk15; + /*0x16*/ u8 unk16; + /*0x17*/ u8 filler17[0x4]; }; extern struct UnknownStruct1 unk_2016A00; diff --git a/include/contest_painting.h b/include/contest_painting.h index 896aa299b..a67748d02 100644 --- a/include/contest_painting.h +++ b/include/contest_painting.h @@ -8,6 +8,14 @@ enum { + NORMAL_RANK, + SUPER_RANK, + HYPER_RANK, + MASTER_RANK, +}; + +enum +{ CONTEST_COOL, CONTEST_BEAUTY, CONTEST_CUTE, diff --git a/include/decoration.h b/include/decoration.h index 4bad93d1f..d041a8007 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -3,14 +3,17 @@ struct Decoration { - u8 id; - u8 name[16]; - u8 decor_field_11; - u8 decor_field_12; - u8 decor_field_13; - u16 price; - u8 *description; - void *tiles; + /*0x00*/ u8 id; + /*0x01*/ u8 name[16]; + /*0x11*/ u8 decor_field_11; + /*0x12*/ u8 decor_field_12; + /*0x13*/ u8 decor_field_13; + /*0x14*/ u16 price; + /*0x18*/ u8 *description; + /*0x1c*/ u16 *tiles; }; +extern struct Decoration gDecorations[0x77]; +extern void sub_80FF394(u16 unkr0, u16 unkr1, u16 unkr2); + #endif // GUARD_DECORATION_H diff --git a/include/easy_chat.h b/include/easy_chat.h index ee5ac4138..dca6b80c2 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -28,5 +28,6 @@ enum { u16 sub_80EB72C(u16 group); +void sub_80EB6FC(u16 *, u16); #endif // GUARD_EASYCHAT_H diff --git a/include/flags.h b/include/flags.h index 56325dea6..0e408a833 100644 --- a/include/flags.h +++ b/include/flags.h @@ -51,6 +51,8 @@ #define SYS_BRAILLE_WAIT 0x851 #define SYS_BRAILLE_FLY 0x852 +#define SYS_TV_LATI 0x85D + #define SYS_SHOAL_ITEM 0x85F #define SYS_B_DASH 0x860 // got Running Shoes #define SYS_CTRL_OBJ_DELETE 0x861 @@ -61,3 +63,5 @@ #define SPECIAL_FLAG_1 0x4001 #endif // GUARD_FLAGS_H + +bool8 FlagGet(u16 flag); diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 508d7e4ed..0b72bbec5 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -104,7 +104,7 @@ struct CoordEvent struct BgEvent { - s16 x, y; + u16 x, y; u8 unk4; u8 kind; // 0x2 padding for the union beginning. @@ -119,7 +119,7 @@ struct BgEvent } hiddenItem; // secret base type - u16 secretBaseId; + u32 secretBaseId; } bgUnion; }; diff --git a/include/global.h b/include/global.h index 4cbbef5cc..34946c895 100644 --- a/include/global.h +++ b/include/global.h @@ -94,23 +94,24 @@ struct UCoords16 struct SecretBaseRecord { - u8 sbr_field_0; // ID? - u8 sbr_field_1_0:4; - u8 gender:1; - u8 sbr_field_1_5:1; - u8 sbr_field_2[7]; // 0xFF bytes? - u8 trainerId[4]; // byte 0 is used for determining trainer class - u16 sbr_field_e; - u8 sbr_field_10; - u8 sbr_field_11; - u8 decorations[16]; - u8 sbr_field_22[16]; - u32 partyPersonality[6]; - u16 partyMoves[6 * 4]; - u16 partySpecies[6]; - u16 partyHeldItems[6]; - u8 partyLevels[6]; - u8 partyEVs[6]; + /*0x1A08*/ u8 sbr_field_0; // ID? + /*0x1A09*/ u8 sbr_field_1_0:4; + /*0x1A09*/ u8 gender:1; + /*0x1A09*/ u8 sbr_field_1_5:1; + /*0x1A09*/ u8 sbr_field_1_6:2; + /*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes? + /*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class + /*0x1A16*/ u16 sbr_field_e; + /*0x1A18*/ u8 sbr_field_10; + /*0x1A19*/ u8 sbr_field_11; + /*0x1A1A*/ u8 decorations[16]; + /*0x1A2A*/ u8 decorationPos[16]; + /*0x1A3A*/ u32 partyPersonality[6]; + /*0x1A54*/ u16 partyMoves[6 * 4]; + /*0x1A84*/ u16 partySpecies[6]; + /*0x1A90*/ u16 partyHeldItems[6]; + /*0x1A9C*/ u8 partyLevels[6]; + /*0x1AA2*/ u8 partyEVs[6]; }; #include "game_stat.h" @@ -193,24 +194,60 @@ struct EasyChatPair struct TVShowCommon { /*0x00*/ u8 var00; /*0x01*/ u8 var01; + /*0x02*/ u8 pad02[20]; + /*0x16*/ u16 var16[3]; + /*0x1C*/ u8 srcTrainerId3Lo; + /*0x1D*/ u8 srcTrainerId3Hi; + /*0x1E*/ u8 srcTrainerId2Lo; + /*0x1F*/ u8 srcTrainerId2Hi; + /*0x20*/ u8 srcTrainerIdLo; + /*0x21*/ u8 srcTrainerIdHi; + /*0x22*/ u8 trainerIdLo; + /*0x23*/ u8 trainerIdHi; +}; + +struct TVShowPokemonToday { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 language; + /*0x03*/ u8 language2; + /*0x04*/ u8 nickname[11]; + /*0x0F*/ u8 ball; + /*0x10*/ u16 species; + /*0x12*/ u8 var12; + /*0x13*/ u8 playerName[8]; +}; + + +struct TVShowPokemonTodayFailed { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 language; + /*0x03*/ u8 pad03[9]; + /*0x0c*/ u16 species; + /*0x0e*/ u16 species2; + /*0x10*/ u8 var10; + /*0x11*/ u8 var11; + /*0x12*/ u8 var12; + /*0x13*/ u8 playerName[8]; }; struct TVShowFanClubLetter { /*0x00*/ u8 var00; /*0x01*/ u8 var01; /*0x02*/ u16 species; - u8 pad04[12]; + /*0x04*/ u16 pad04[6]; /*0x10*/ u8 playerName[8]; - /*0x18*/ u8 var18; + /*0x18*/ u8 language; }; struct TVShowRecentHappenings { /*0x00*/ u8 var00; /*0x01*/ u8 var01; /*0x02*/ u16 var02; - u8 pad04[12]; - /*0x10*/ u8 var10[8]; - /*0x18*/ u8 var18; + /*0x04*/ u16 var04[6]; + /*0x10*/ u8 playerName[8]; + /*0x18*/ u8 language; u8 pad19[10]; }; @@ -220,11 +257,13 @@ struct TVShowFanclubOpinions { /*0x02*/ u16 var02; /*0x04*/ u8 var04A:4; u8 var04B:4; - /*0x04*/ u8 var05[8]; - /*0x0D*/ u8 var0D; + /*0x05*/ u8 playerName[8]; + /*0x0D*/ u8 language; /*0x0E*/ u8 var0E; /*0x0F*/ u8 var0F; /*0x10*/ u8 var10[8]; + /*0x18*/ u16 var18[2]; + /*0x1C*/ u16 var1C[4]; }; struct TVShowNameRaterShow { @@ -237,7 +276,7 @@ struct TVShowNameRaterShow { /*0x1B*/ u8 random2; /*0x1C*/ u16 var1C; /*0x1E*/ u8 language; - /*0x1F*/ u8 var1F; + /*0x1F*/ u8 pokemonNameLanguage; }; struct TVShowMassOutbreak { @@ -255,10 +294,77 @@ struct TVShowMassOutbreak { /*0x14*/ u8 level; /*0x15*/ u8 var15; /*0x16*/ u16 var16; - /*0x18*/ u8 var18; + /*0x18*/ u8 language; u8 pad19[11]; }; +struct TVShowPokemonAngler { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 var02; + /*0x03*/ u8 var03; + /*0x04*/ u16 var04; + /*0x06*/ u8 language; + u8 pad07[12]; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowWorldOfMasters { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u16 var02; + /*0x04*/ u16 var04; + /*0x06*/ u16 var06; + /*0x08*/ u16 var08; + /*0x0a*/ u8 var0a; + /*0x0b*/ u8 language; + u8 pad0c[7]; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowSmartShopper { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 priceReduced; + /*0x03*/ u8 language; + /*0x04*/ u8 pad04[2]; + /*0x06*/ u16 itemIds[3]; + /*0x0C*/ u16 itemAmounts[3]; + /*0x12*/ u8 shopLocation; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowBravoTrainerPokemonProfiles { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u16 species; + /*0x04*/ u16 var04[2]; + /*0x08*/ u8 pokemonNickname[11]; + /*0x13*/ u8 contestCategory:3; + /*0x13*/ u8 contestRank:2; + /*0x13*/ u8 var13_5:2; + /*0x13*/ u8 var13_7:1; + /*0x14*/ u16 var14; + /*0x16*/ u8 playerName[8]; + /*0x1E*/ u8 language; + /*0x1F*/ u8 var1f; +}; + +struct TVShowBravoTrainerBattleTowerSpotlight { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 trainerName[8]; + /*0x0A*/ u16 species; + /*0x0C*/ u8 pokemonName[8]; + /*0x14*/ u16 winningMove; + /*0x16*/ u16 var16; + /*0x18*/ u16 var18[1]; + /*0x1A*/ u8 btLevel; + /*0x1B*/ u8 var1b; + /*0x1C*/ u8 var1c; + /*0x1D*/ u8 language; +}; + typedef union TVShow { struct TVShowCommon common; struct TVShowFanClubLetter fanclubLetter; @@ -266,6 +372,13 @@ typedef union TVShow { struct TVShowFanclubOpinions fanclubOpinions; struct TVShowNameRaterShow nameRaterShow; struct TVShowMassOutbreak massOutbreak; + struct TVShowPokemonAngler pokemonAngler; + struct TVShowWorldOfMasters worldOfMasters; + struct TVShowSmartShopper smartshopperShow; + struct TVShowBravoTrainerPokemonProfiles bravoTrainer; + struct TVShowBravoTrainerBattleTowerSpotlight bravoTrainerTower; + struct TVShowPokemonToday pokemonToday; + struct TVShowPokemonTodayFailed pokemonTodayFailed; } TVShow; struct MailStruct @@ -325,6 +438,36 @@ typedef union SB_Struct { } SB_Struct; // size is 0x198 +struct SaveTVStruct { + TVShow shows[24]; + TVShow unknown_2A98; +}; + +struct UnknownSaveStruct2ABC { + u8 val0; + u8 val1; + u16 val2; +}; + +struct GabbyAndTyData { + u16 mon1; + u16 mon2; + u16 move1; + u16 move2; + u8 mapnum; + u8 val9; + u8 valA_0:1; + u8 valA_1:1; + u8 valA_2:1; + u8 valA_3:1; + u8 valA_4:4; + u8 valB; +}; + +struct RecordMixing_UnknownStruct { + u8 data[0x38]; +}; + struct SaveBlock1 /* 0x02025734 */ { /*0x00*/ struct Coords16 pos; @@ -374,8 +517,8 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2704*/ u8 decorDoll[40]; /*0x272C*/ u8 decorCushion[10]; /*0x2736*/ u8 padding_2736[2]; - /*0x2738*/ TVShow tvShows[24]; - /*0x2A98*/ u8 filler_2A98[0x64]; + /*0x2738*/ struct SaveTVStruct tvShows; + /*0x2ABC*/ struct UnknownSaveStruct2ABC unknown_2ABC[16]; /*0x2AFC*/ u16 outbreakPokemonSpecies; /*0x2AFE*/ u8 outbreakLocationMapNum; /*0x2AFF*/ u8 outbreakLocationMapGroup; @@ -386,7 +529,7 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2B0C*/ u8 outbreakUnk4; /*0x2B0D*/ u8 outbreakPokemonProbability; /*0x2B0E*/ u16 outbreakUnk5; - /*0x2B10*/ u8 filler_2B0E[0xC]; + /*0x2B18*/ struct GabbyAndTyData gabbyAndTyData; /*0x2B1C*/ u16 unk2B1C[6]; /*0x2B28*/ u16 unk2B28[6]; /*0x2B34*/ u16 unk2B34[6]; @@ -399,9 +542,9 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff /*0x2DFC*/ u8 filler_2DFC[0x8]; /*0x2E04*/ SB_Struct sbStruct; - /*0x2F9C*/ u8 filler_2F9C[0xA0]; - /*0x303C*/ u8 filler_303C[0x38]; - /*0x3074*/ u8 filler_3074[0x42]; + /*0x2F9C*/ struct BoxPokemon daycareData[2]; + /*0x303C*/ struct RecordMixing_UnknownStruct filler_303C[2]; + /*0x30AC*/ u8 filler_30AC[0xA]; /*0x30B6*/ u8 filler_30B6; /*0x30B7*/ u8 filler_30B7[1]; /*0x30B8*/ u8 linkBattleRecords[5][16]; @@ -440,7 +583,11 @@ struct Pokedex struct SaveBlock2_Sub { - /*0x0000, 0x00A8*/ u8 filler_000[0x4AE]; + /*0x0000, 0x00A4*/ u8 filler_000[0x3D8]; + /*0x03D8, 0x0480*/ u16 var_480; + /*0x03DA, 0x0482*/ u16 var_482; + /*0x03DC, 0x0484*/ u8 filler_3DC[0xD1]; + /*0x04AD, 0x0555*/ u8 var_4AD; /*0x04AE, 0x0556*/ u8 var_4AE; /*0x04AF, 0x0557*/ u8 var_4AF; /*0x04B0, 0x0558*/ u16 var_4B0; @@ -450,7 +597,9 @@ struct SaveBlock2_Sub /*0x04B8, 0x0560*/ u8 filler_4B8[0x10]; /*0x04C8, 0x0570*/ u16 var_4C8; /*0x04CA, 0x0572*/ u16 var_4CA; - /*0x04CC, 0x0574*/ u8 filler_4CC[0x31C]; + /*0x04CC, 0x0574*/ u8 filler_4CC[4]; + /*0x04D0, 0x0578*/ u8 var_4D0; + /*0x04D1, 0x0579*/ u8 filler_4D1[0x317]; }; struct SaveBlock2 /* 0x02024EA4 */ diff --git a/include/item.h b/include/item.h index cc917dbc8..47af11940 100644 --- a/include/item.h +++ b/include/item.h @@ -1,8 +1,27 @@ #ifndef GUARD_ITEM_H #define GUARD_ITEM_H + typedef void (*ItemUseFunc)(u8); +struct Item +{ + u8 name[14]; + u16 itemId; + u16 price; + u8 holdEffect; + u8 holdEffectParam; + u8 *description; + u8 importance; + u8 unk19; + u8 pocket; + u8 type; + ItemUseFunc fieldUseFunc; + u8 battleUsage; + ItemUseFunc battleUseFunc; + u8 secondaryId; +}; + void CopyItemName(u16 itemId, u8 *string); bool8 IsBagPocketNonEmpty(u8 pocket); bool8 CheckBagHasItem(u16 itemId, u16 count); diff --git a/include/pokedex.h b/include/pokedex.h index 5dd44cd2f..61597981b 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -135,7 +135,7 @@ void sub_8090A3C(u8); void sub_8090C68(void); u8 *GetPokemonCategory(u16); -bool8 sub_8090D90(u16, u8); +s8 sub_8090D90(u16, u8); u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); bool8 sub_8090FC0(void); diff --git a/include/pokemon.h b/include/pokemon.h index ae02de8ca..15a028d6e 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -462,4 +462,5 @@ void MonRestorePP(struct Pokemon *); u8 *sub_803F378(u16 itemId); +u16 NationalPokedexNumToSpecies(u16 nationalNum); #endif // GUARD_POKEMON_H diff --git a/include/record_mixing.h b/include/record_mixing.h index 39cf5bd43..72a089ca1 100644 --- a/include/record_mixing.h +++ b/include/record_mixing.h @@ -4,16 +4,16 @@ #include <stddef.h> void sub_80B929C(void); -void sub_80B92AC(void); -void sub_80B93B0(u32 a); -void sub_80B9450(u8 taskId); -void sub_80B9484(u8 taskId); +void RecordMixing_PrepareExchangePacket(void); +void RecordMixing_ReceiveExchangePacket(u32 a); +void Task_RecordMixing_SoundEffect(u8 taskId); +void Task_RecordMixing_Main(u8 taskId); void sub_80B95F0(u8 taskId); -void sub_80B97DC(u8 taskId); -void Task_CopyRecvBuffer(u8 taskId); +void Task_RecordMixing_SendPacket(u8 taskId); +void Task_RecordMixing_CopyReceiveBuffer(u8 taskId); void sub_80B99B4(u8 taskId); -void sub_80B99E8(u8 taskId); -void sub_80B9A1C(u8 taskId); +void Task_RecordMixing_ReceivePacket(u8 taskId); +void Task_RecordMixing_SendPacket_SwitchToReceive(u8 taskId); void *LoadPtrFromTaskData(u16 *ptr); void StorePtrInTaskData(void *ptr, u16 *data); u8 GetMultiplayerId_(void); diff --git a/include/tv.h b/include/tv.h new file mode 100644 index 000000000..b1ed61a82 --- /dev/null +++ b/include/tv.h @@ -0,0 +1,23 @@ +// +// Created by Scott Norton on 5/18/17. +// + +#ifndef POKERUBY_TV_H +#define POKERUBY_TV_H +enum +{ + TVSHOW_FAN_CLUB_LETTER = 1, + TVSHOW_RECENT_HAPPENINGS, + TVSHOW_PKMN_FAN_CLUB_OPINIONS, + TVSHOW_UNKN_SHOWTYPE_04, + TVSHOW_NAME_RATER_SHOW, + TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE, + TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE, + TVSHOW_POKEMON_TODAY_CAUGHT = 21, + TVSHOW_SMART_SHOPPER, + TVSHOW_POKEMON_TODAY_FAILED, + TVSHOW_FISHING_ADVICE, + TVSHOW_WORLD_OF_MASTERS, + TVSHOW_MASS_OUTBREAK = 41, +}; +#endif //POKERUBY_TV_H diff --git a/include/vars.h b/include/vars.h index 55df0a5e3..cb5bb3296 100644 --- a/include/vars.h +++ b/include/vars.h @@ -1,6 +1,8 @@ #ifndef GUARD_VARS_H #define GUARD_VARS_H +#define VAR_0x4003 0x4003 +#define VAR_0x401F 0x401F #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 #define VAR_ICE_STEP_COUNT 0x4022 @@ -26,6 +28,13 @@ #define VAR_BARBOACH_SIZE_RECORD 0x404F -#define VAR_PORTHOLE 0x40B4 +#define VAR_0x4054 0x4054 + +#define VAR_0x4089 0x4089 +#define VAR_0x4097 0x4097 + +#define VAR_PORTHOLE 0x40B4 + +#define VAR_0x40BC 0x40BC #endif // GUARD_VARS_H |