diff options
Diffstat (limited to 'src/dungeon_2.c')
-rw-r--r-- | src/dungeon_2.c | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/dungeon_2.c b/src/dungeon_2.c new file mode 100644 index 0000000..18b6fe5 --- /dev/null +++ b/src/dungeon_2.c @@ -0,0 +1,83 @@ +#include "global.h" +#include "dungeon.h" +#include "code_800D090.h" +#include "pokemon.h" +#include "code_8092334.h" +#include "constants/dungeon.h" + +extern const char gUnknown_8108F10[]; +extern const char gUnknown_8108F18[]; +extern const char gUnknown_8108F2C[]; +extern u8 gUnknown_81077A8[]; +extern u8 gUnknown_81077E8[]; + +void sub_80901D8(struct unkPokeSubStruct_4 *param_1,struct unkPokeSubStruct_4 *param_2) +{ + if ((u8)(param_2->dungeonIndex - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE) { + param_1->dungeonIndex = DUNGEON_NORMAL_MAZE; + param_1->dungeonFloor = (param_2->dungeonIndex - DUNGEON_NORMAL_MAZE_2) * 3 + param_2->dungeonFloor; + } + else { + *param_1 = *param_2; + } +} + +void PrintYellowDungeonNametoBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation) +{ + sprintf_2(buffer, gUnknown_8108F10, gDungeonNames[dungeonLocation->dungeonIndex].name1); // {COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2} (normal floor print (no B) +} + +void PrintDungeonLocationtoBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation) +{ + if(gDungeons[dungeonLocation->dungeonIndex].stairDirection != 0){ + sprintf_2(buffer, gUnknown_8108F18, gDungeonNames[dungeonLocation->dungeonIndex].name1, dungeonLocation->dungeonFloor); //_F + } + else + { + sprintf_2(buffer, gUnknown_8108F2C, gDungeonNames[dungeonLocation->dungeonIndex].name1, dungeonLocation->dungeonFloor); // B _F + } +} + +void CopyDungeonName1toBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation) +{ + strncpy(buffer, gDungeonNames[dungeonLocation->dungeonIndex].name1, 0x50); +} + +u8 sub_8090298(u8 dungeon) +{ + if ((u8)(dungeon - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE) + return 4; + else if(dungeon > DUNGEON_PURITY_FOREST) + return 1; + else + return gUnknown_81077A8[dungeon]; +} + +u8 sub_80902C8(u8 dungeon) +{ + if ((u8)(dungeon - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE) + return 0; + else if(dungeon > DUNGEON_PURITY_FOREST) + return 0; + else + return gUnknown_81077E8[dungeon]; +} + +void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924* r0, struct unkPokeSubStruct_4* r1) +{ + SaveIntegerBits(r0, &r1->dungeonIndex, 0x7); + SaveIntegerBits(r0, &r1->dungeonFloor, 0x7); +} + +void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924* r0, struct unkPokeSubStruct_4* r1) +{ + r1->dungeonIndex = 0; + r1->dungeonFloor = 0; + RestoreIntegerBits(r0, &r1->dungeonIndex, 0x7); + RestoreIntegerBits(r0, &r1->dungeonFloor, 0x7); +} + +u8 GetDungeonUnk1(u8 dungeon) +{ + return gDungeons[dungeon].unk1; +} |