diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index 8a8cf512..46058eba 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -510,8 +510,8 @@ segments: - [0xF7AB00, c, code_1930] - [0xF7B410, c, code_2240] - [0xF7BA60, c, ba/anim] - - [0xF7C650, bin, core2_untouched_text] - # - [0xF58DE0, c, snackerctl] #DONE + - [0xF7C650, c, snackerctl] + - [0xF7CBA0, bin, core2_untouched_text] # - [0xF59330, c, code_39D0] #DONE # - [0xF5A120, c, ba/marker] #DONE # - [0xF5C490, c, code_6B30] #DONE @@ -901,8 +901,8 @@ segments: - [0x1055E20, bin, data_DC600] #unreferenced - [0x1055E50, .data, code_1550] - [0x1055E70, .data, ba/anim] - - [0x1055EA0, bin, core2_untouched_data] - # - [0x1031FE0, .data, snackerctl] + - [0x1055EA0, .data, snackerctl] + - [0x1055EC0, bin, core2_untouched_data] # - [0x1032000, .data, ba/marker] # - [0x1032060, .data, code_7060] # - [0x10320A0, .data, code_90E0] @@ -1124,8 +1124,8 @@ segments: - [0x10667C0, .rodata, anim/sprite] - [0x10667D0, .rodata, code_1930] - [0x10667F0, .rodata, ba/anim] - - [0x1066860, bin, core2_untouched_rodata] - # - [0x1042890, .rodata, snackerctl] + - [0x1066860, .rodata, snackerctl] + - [0x1066870, bin, core2_untouched_rodata] # - [0x10428A0, .rodata, code_39D0] # - [0x1042940, .rodata, ba/marker] # - [0x1042D70, .rodata, code_6B30] @@ -1377,7 +1377,7 @@ segments: - [0x0106C980, .bss, code_1550] - [0x0106C980, .bss, code_1930] - [0x0106C980, .bss, ba/anim] - # - [0x0106C980, .bss, snackerctl] + - [0x0106C980, .bss, snackerctl] # - [0x0106C980, .bss, code_39D0] # - [0x0106C980, .bss, ba/marker] # - [0x0106C980, .bss, code_6B30] diff --git a/include/enums.h b/include/enums.h index a40c4125..9b331ff7 100644 --- a/include/enums.h +++ b/include/enums.h @@ -1,6 +1,8 @@ #ifndef ENUMS_H #define ENUMS_H +#include "version.h" + #define SPRITE_TYPE_CI4 (1 << 0) //0x001 #define SPRITE_TYPE_CI8 (1 << 2) //0x004 #define SPRITE_TYPE_I4 (1 << 5) //0x020 @@ -4157,7 +4159,11 @@ enum asset_e ASSET_E1D_TEXT_BOTTLES_TUTORIAL_OFFER_WAIT = 0xE1D, - ASSET_E1F_TEXT_BOTTLES_TUTORIAL_OFFER = 0xE1F, + ASSET_E1F_TEXT_BOTTLES_TUTORIAL_OFFER = VER_SELECT(0xE1F, 0xa61, 0, 0), + ASSET_E20_DIALOG_BOTTLES_BONUS_NOT_READY, + ASSET_E21_DIALOG_BOTTLES_BONUS_DISCOVERED, + + ASSET_E35_DIALOG_BOTTLES_BONUS_REMINDER = VER_SELECT(0xE35, 0xa77, 0, 0), ASSET_E37_TEXT_BOTTLES_STOP_WASTING_TIME_AFTER_FURNACE_FUN = 0xE37, // Talk to bottles after beating furnace fun diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index 959867fc..441f82d4 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -35,14 +35,21 @@ boot_func_8023DA20 = func_8023DA20; /* Temporary Correct*/ +func_8028B470 = 0x8028b290; player_getTransformation = 0x8028e5ec; +func_8028E964 = 0x8028e784; player_getPosition = 0x8028e7c4; player_getPosition_s32 = 0x8028e95c; player_getWaterState = 0x8028eca4; player_is_present = 0x8028eff4; func_8028F22C = 0x8028f04c; +func_8028F25C = 0x8028f07c; +func_8028F918 = 0x8028f738; +func_8028F94C = 0x8028f76c; func_8028FB88 = 0x8028f9a8; +miscFlag_isTrue = 0x802931e0; + baphysics_get_velocity = 0x802978c8; baphysics_get_vertical_velocity = 0x802978ec; _player_getPosition = 0x80298314; @@ -52,6 +59,7 @@ func_802BB378 = 0x802bb1e8; func_802BB3AC = 0x802bb21c; func_802BB3C4 = 0x802bb234; func_802BB3DC = 0x802bb24c; +ncFirstPersonCamera_getZoomedInRotation = 0x802c295c; spawnQueue_func_802C3A18 = 0x802C3898; spawnQueue_flush = 0x802c38b8; func_802C5A30 = 0x802c5b20; @@ -61,6 +69,8 @@ func_802D686C = 0x802d6a4c; chmole_learnedAllSpiralMountainAbilities = 0x802da678; chOverlayNoController_spawn = 0x802dd1e8; chOverlayNoController_func_802DD040 = 0x802dd220; +chBottlesBonus_getPuzzleIndex = 0x802de5fc; +chsnacker_setControlState = 0x802e1bf4; func_802E3580 = 0x802E3770; dummy_func_802E35D0 = 0x802E37C0; func_802E35D8 = 0x802E37c8; @@ -115,6 +125,8 @@ func_8030E2C4 = 0x8030e464; func_8030E6A4 = 0x8030e844; func_8030ED70 = 0x8030ef10; func_8030E394 = 0x8030e534; +func_80311480 = 0x803116cc; + func_8031B908 = 0x8031bce8; func_8031C44C = 0x8031c82c; func_8031C5AC = 0x8031c98c; @@ -129,6 +141,8 @@ func_80320B98 = 0x80320f88; func_80320C94 = 0x80321084; func_80320DB0 = 0x803211a0; jiggyscore_isCollected = 0x803213d0; +func_80321960 = 0x80321d50; +func_803219F4 = 0x80321de4; levelSpecificFlags_get = 0x803222d4; levelSpecificFlags_validateCRC1 = 0x8032243c; func_8032274C = 0x80322b4c; @@ -170,13 +184,20 @@ func_8033EFB0 = 0x8033f400; func_8033F000 = 0x8033f450; demo_readInput = 0x8034a334; randf = 0x8034a7e0; +func_8034B9BC = 0x8034be20; +func_8034BB48 = 0x8034bfac; func_8034C630 = 0x8034ca90; func_8034E698 = 0x8034eaf8; +core2_TEXT_END = 0x80363a00; + +core2_DATA_START = 0x80363a00; D_803727F4 = 0x80372d74; D_80379B90 = 0x8037A560; +D_8037DCCA = 0x8037e69a; +D_8037DCCB = 0x8037e69b; +D_8037DCCC = 0x8037e69c; + -core2_TEXT_END = 0x80363a00; -core2_DATA_START = 0x80363a00; core2_RODATA_END = 0x8037A560; core2_BSS_START = 0x8037A560; core2_BSS_END = 0x80386dd0; diff --git a/src/core2/snackerctl.c b/src/core2/snackerctl.c index 5ebb04ab..c071b307 100644 --- a/src/core2/snackerctl.c +++ b/src/core2/snackerctl.c @@ -3,9 +3,14 @@ #include #include "functions.h" #include "variables.h" +#include "version.h" #include "ch/snacker.h" +// ToDo: move to assets_e +#define SNACKER_BB_DIALOG_0 VER_SELECT(0xe26, 0xa68, 0, 0) +#define SNACKER_BB_DIALOG_1 VER_SELECT(0xe33, 0xa75, 0, 0) + s32 func_80259254(f32 *, f32, f32, f32); void ncFirstPersonCamera_getZoomedInRotation(f32 *); @@ -78,7 +83,7 @@ static SnackerCtlState _snackerctl_update_bottles_bonus(void){ return 0; if(func_8034BB48() && chBottlesBonus_getPuzzleIndex() != 7){ - func_80311480(0xe26 + (chBottlesBonus_getPuzzleIndex() << 1), 6, D_80363610, NULL, NULL, NULL); + func_80311480(SNACKER_BB_DIALOG_0 + (chBottlesBonus_getPuzzleIndex() << 1), 6, D_80363610, NULL, NULL, NULL); } if(!func_8028F25C() && func_80321960() == 3) func_803219F4(1); @@ -88,12 +93,12 @@ static SnackerCtlState _snackerctl_update_bottles_bonus(void){ if(chBottlesBonus_getPuzzleIndex() == 6){ if(!D_8037DCCC){ func_8028F94C(4, &D_80363610); - func_80311480(0xe33, 0x6, D_80363610, NULL, func_8028A584, NULL); + func_80311480(SNACKER_BB_DIALOG_1, 0x6, D_80363610, NULL, func_8028A584, NULL); } }//L8028A70C else if(chBottlesBonus_getPuzzleIndex() == 7){ func_8028F94C(4, &D_80363610); - func_80311480(0xe35, 0x6, D_80363610, NULL, func_8028A558, NULL); + func_80311480(ASSET_E35_DIALOG_BOTTLES_BONUS_REMINDER, 0x6, D_80363610, NULL, func_8028A558, NULL); D_8037DCCC = 1; }//L8028A764 else if(jiggyscore_isCollected(0x10)){ @@ -103,7 +108,7 @@ static SnackerCtlState _snackerctl_update_bottles_bonus(void){ ){ if(!D_8037DCCA){ func_8028F94C(4, &D_80363610); - func_80311480(0xe21, 6, D_80363610, 0, func_8028A584, NULL); + func_80311480(ASSET_E21_DIALOG_BOTTLES_BONUS_DISCOVERED, 6, D_80363610, 0, func_8028A584, NULL); D_8037DCCA = 1; }else{ func_8028A584(0,0,0); @@ -113,7 +118,7 @@ static SnackerCtlState _snackerctl_update_bottles_bonus(void){ else{ if(!D_8037DCCB){ func_8028F94C(4, &D_80363610); - func_80311480(0xe20, 6, D_80363610, 0, func_8028A558, NULL); + func_80311480(ASSET_E20_DIALOG_BOTTLES_BONUS_NOT_READY, 6, D_80363610, 0, func_8028A558, NULL); D_8037DCCB = 1; } }