diff --git a/include/JSystem/JMessage/control/control.h b/include/JSystem/JMessage/control/control.h new file mode 100644 index 00000000000..9d2ffa86a1b --- /dev/null +++ b/include/JSystem/JMessage/control/control.h @@ -0,0 +1,12 @@ +#ifndef __CONTROL_H_ +#define __CONTROL_H_ + +#include "dolphin/types.h" + + +// this may actually go somewhere else, but defining it here for now +class JMSMesgEntry_c { + +}; + +#endif \ No newline at end of file diff --git a/include/d/d_com/d_com_inf_game/d_com_inf_game.h b/include/d/d_com/d_com_inf_game/d_com_inf_game.h index 4b83ef050d8..80e202b4382 100644 --- a/include/d/d_com/d_com_inf_game/d_com_inf_game.h +++ b/include/d/d_com/d_com_inf_game/d_com_inf_game.h @@ -1,5 +1,5 @@ -#ifndef D_COM_INF_GAME_H_ -#define D_COM_INF_GAME_H_ +#ifndef __D_COM_INF_GAME_H_ +#define __D_COM_INF_GAME_H_ #include "d/d_drawlist/d_drawlist.h" #include "d/d_event/d_event/d_event.h" diff --git a/include/d/d_meter2/d_meter2_info/d_meter2_info.h b/include/d/d_meter2/d_meter2_info/d_meter2_info.h index be9e60ea750..e018083aef6 100644 --- a/include/d/d_meter2/d_meter2_info/d_meter2_info.h +++ b/include/d/d_meter2/d_meter2_info/d_meter2_info.h @@ -7,6 +7,47 @@ struct dMeter2Info_c_vtable { }; class dMeter2Info_c { + public: + dMeter2Info_c::dMeter2Info_c(); + dMeter2Info_c::~dMeter2Info_c(); + void init(void); + void setFloatingMessage(u16, s16, bool); + void setFloatingFlow(u16, s16, bool); + int isFloatingMessageVisible(void); + int decFloatingMessageTimer(void); + void resetFloatingMessage(void); + void decMsgKeyWaitTimer(void); + void getString(u32, char*, JMSMesgEntry_c*); // define JMSMesgEntry + void getStringKana(u32, char*, JMSMesgEntry_c*); + void getStringKanji(u32, char*, JMSMesgEntry_c*); + double getStringLength(J2DTextBox*, char*); // define J2DTextBox + dMeter2Info_c* getStringLength(JUTFont*, float, float, char*); + void onDirectUseItem(int); + int isDirectUseItem(int); + int setMeterString(s32); + void resetWarpStatus(void); + void warpInProc(void); + void warpOutProc(void); + void resetMeterString(void); + void setWarpInfo(const char*, const cXyz&, s16, u8, u8, u8); + u8 getItemType(u8); + u8 readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, J2DPicture*, void*, J2DPicture*, int); // define J2DPicture + void setItemColor(u8, J2DPicture*, J2DPicture*, J2DPicture*, J2DPicture*); + u8 get2ndTexture(u8); + u8 get3rdTexture(u8); + u8 get4thTexture(u8); + void set1stColor(u8, J2DPicture*); + void set2ndColor(u8, J2DPicture*); + void set3rdColor(u8, J2DPicture*); + void set4thColor(u8, J2DPicture*); + void setHotSpringTimer(u8); + void decHotSpringtimer(void); + void changeWater(u8); + void setMiniGameItem(u8); + void resetMiniGameItem(bool); + void setMiniGameCount(s8); + void setSaveStageName(const char*); + private: dMeter2Info_c_vtable* vtable; u8 unk4[4]; diff --git a/include/d/d_save/d_save/d_save.h b/include/d/d_save/d_save/d_save.h index f04a4e05430..045291ce787 100644 --- a/include/d/d_save/d_save/d_save.h +++ b/include/d/d_save/d_save/d_save.h @@ -2,22 +2,50 @@ #define D_SAVE_H_ #include "dolphin/types.h" +#include "global.h" #define DEFAULT_SELECT_ITEM_INDEX 0 #define MAX_SELECT_ITEM 3 +#define MAX_EVENTS 256 static const int MAX_ITEM_SLOTS = 24; static const int ITEM_XY_MAX_DUMMY = 8; static const int LIGHT_DROP_STAGE = 4; static const int LETTER_INFO_BIT = 64; - enum Wallets { WALLET, BIG_WALLET, GIANT_WALLET }; +enum ItemSlots { + SLOT_0, + SLOT_1, + SLOT_2, + SLOT_3, + SLOT_4, + SLOT_5, + SLOT_6, + SLOT_7, + SLOT_8, + SLOT_9, + SLOT_10, + SLOT_11, + SLOT_12, + SLOT_13, + SLOT_14, + SLOT_15, + SLOT_16, + SLOT_17, + SLOT_18, + SLOT_19, + SLOT_20, + SLOT_21, + SLOT_22, + SLOT_23 +}; + enum ItemTable { AIR_LETTER = 234, ANCIENT_DOCUMENT = 233, @@ -277,40 +305,40 @@ enum ItemTable { noentry9 = 60 }; -enum EquipmentBits{ - CLOTHING_BITFIELD, - SWORD_BITFIELD, - SHIELD_BITFIELD +enum EquipmentBits { + CLOTHING_BITFIELD, + SWORD_BITFIELD, + SHIELD_BITFIELD }; -enum Swords{ - ORDON_SWORD_FLAG, - MASTER_SWORD_FLAG, - WOODEN_SWORD_FLAG, - LIGHT_SWORD_FLAG +enum Swords { + ORDON_SWORD_FLAG, + MASTER_SWORD_FLAG, + WOODEN_SWORD_FLAG, + LIGHT_SWORD_FLAG }; -enum Shields{ - ORDON_SHIELD_FLAG, - HYLIAN_SHIELD_FLAG, - WOODEN_SHIELD_FLAG +enum Shields { + ORDON_SHIELD_FLAG, + HYLIAN_SHIELD_FLAG, + WOODEN_SHIELD_FLAG }; -enum Armors{ - HEROS_CLOTHES_FLAG +enum Armors { + HEROS_CLOTHES_FLAG }; -enum DungeonItem{ - MAP_FLAG, - COMPASS_FLAG, - BOSS_KEY_FLAG, - OOCCOO_NOTE_FLAG = 6 +enum DungeonItem { + MAP_FLAG, + COMPASS_FLAG, + BOSS_KEY_FLAG, + OOCCOO_NOTE_FLAG = 6 }; -enum AreaVessel{ - FARON_VESSEL, - ELDIN_VESSEL, - LANAYRU_VESSEL +enum AreaVessel { + FARON_VESSEL, + ELDIN_VESSEL, + LANAYRU_VESSEL }; class dSv_player_status_a_c { @@ -326,10 +354,10 @@ class dSv_player_status_a_c { inline u16& getCurrentHealth() { return current_health; } - inline void setWalletLV(u8 lv){ + inline void setWalletLV(u8 lv) { current_wallet = lv; } - void setLanternOil(u16 amount){ + void setLanternOil(u16 amount) { max_lantern_oil = amount; current_lantern_oil = amount; } @@ -391,7 +419,7 @@ class dSv_horse_place_c { private: cXyz position; u16 angle; - u8 current_stage[8]; + char current_stage[8]; u8 spawn_id; u8 room_id; }; @@ -402,7 +430,7 @@ class dSv_player_return_place_c { void set(const char*, s8, u8); private: - u8 current_stage[8]; + char current_stage[8]; u8 spawn_id; u8 room_id; u8 unk10; @@ -419,7 +447,7 @@ class dSv_player_field_last_stay_info_c { private: cXyz last_position; u16 last_angle; - u8 last_stage[8]; + char last_stage[8]; u8 last_spawn_id; u8 last_room_id; u8 unk24; @@ -435,7 +463,7 @@ class dSv_player_last_mark_info_c { private: cXyz ooccoo_position; u16 ooccoo_angle; - u8 ooccoo_stage[8]; + char ooccoo_stage[8]; u8 ooccoo_spawn_id; u8 ooccoo_room_id; char unk24; @@ -469,7 +497,7 @@ class dSv_player_item_c { void setRodTypeLevelUp(void); void setBaitItem(u8); - static const int BOMB_BAG_MAX = 4; + static const int BOMB_BAG_MAX = 3; static const int BOTTLE_MAX = 4; private: @@ -482,7 +510,7 @@ class dSv_player_get_item_c { void init(void); void onFirstBit(u8); void offFirstBit(u8); - bool isFirstBit(u8) const; + int isFirstBit(u8) const; private: u32 pause_menu_bit_fields[4]; @@ -498,7 +526,7 @@ class dSv_player_item_record_c { u8 addBottleNum(u8, short); u8 getBottleNum(u8) const; - void setBowAmount(u8 amount){ bow = amount; } + void setBowAmount(u8 amount) { bow = amount; } private: u8 bow; @@ -514,7 +542,7 @@ class dSv_player_item_max_c { void setBombNum(u8, u8); u8 getBombNum(u8) const; - void setBowCapacity(u8 max){ item_capacities[0] = max; } + void setBowCapacity(u8 max) { item_capacities[0] = max; } private: u8 item_capacities[8]; @@ -530,7 +558,7 @@ class dSv_player_collect_c { void onCollectMirror(u8); bool isCollectMirror(u8) const; - u8 getPoeCount(){ return poe_count; } + u8 getPoeCount() { return poe_count; } private: u8 unk0[8]; @@ -554,7 +582,7 @@ class dSv_player_wolf_c { class dSv_light_drop_c { public: void init(void); - void setLightDropNum(u8,u8); + void setLightDropNum(u8, u8); u8 getLightDropNum(u8) const; void onLightDropGetFlag(u8); bool isLightDropGetFlag(u8) const; @@ -571,10 +599,11 @@ class dSv_letter_info_c { void onLetterGetFlag(int); bool isLetterGetFlag(int) const; void onLetterReadFlag(int); - bool isLetterReadFlag(int) const; + int isLetterReadFlag(int) const; private: - u32 letter_read_flags[4]; + u32 letter_get_bitfields[2]; + u32 letter_read_bitfields[2]; u8 unk16[64]; }; @@ -638,15 +667,15 @@ class dSv_player_c { void init(void); dSv_player_info_c& getPlayerInfo() { return player_info; } dSv_player_status_a_c& getPlayerStatusA() { return player_status_a; } - dSv_player_item_c& getPlayerItem(){ return player_item; } - dSv_player_collect_c& getPlayerCollect(){ return player_collect;} - dSv_player_item_record_c& getPlayerItemRecord(){ return player_item_record; } - dSv_player_item_max_c& getPlayerItemMax(){ return player_item_max;} - dSv_light_drop_c& getLightDrop(){ return light_drop; } - dSv_player_get_item_c& getPlayerGetItem(){ return player_get_item;} + dSv_player_item_c& getPlayerItem() { return player_item; } + dSv_player_collect_c& getPlayerCollect() { return player_collect; } + dSv_player_item_record_c& getPlayerItemRecord() { return player_item_record; } + dSv_player_item_max_c& getPlayerItemMax() { return player_item_max; } + dSv_light_drop_c& getLightDrop() { return light_drop; } + dSv_player_get_item_c& getPlayerGetItem() { return player_get_item; } void setPlayerStatusAWalletLV(u8 lv) { player_status_a.setWalletLV(lv); } - void setPlayerStatusAOil(u16 amount){ player_status_a.setLanternOil(amount);} + void setPlayerStatusAOil(u16 amount) { player_status_a.setLanternOil(amount); } private: dSv_player_status_a_c player_status_a; @@ -684,7 +713,7 @@ class dSv_memBit_c { void onDungeonItem(int); bool isDungeonItem(int) const; - u8 getSmallKeys(){ + u8 getSmallKeys() { return small_key_flags; } @@ -793,7 +822,7 @@ class dSv_zoneBit_c { }; class dSv_zoneActor_c { - public: + public: void init(void); void on(int); void off(int); @@ -809,7 +838,7 @@ class dSv_zone_c { public: dSv_zone_c(void); // the assembly for this is in d_com_inf_game.s void init(int); - dSv_zoneBit_c& getZoneBit() { return zone_bit;} + dSv_zoneBit_c& getZoneBit() { return zone_bit; } dSv_zoneActor_c& getZoneActor() { return zone_actor; } s8& getUnk0() { return unk0; } @@ -848,14 +877,16 @@ class dSv_save_c { public: void init(void); dSv_memory2_c* getSave2(int); - dSv_player_c& getPlayer() {return player; } - dSv_player_status_a_c& getPlayerStatusA() {return player.getPlayerStatusA(); } - dSv_event_c& getEventFlags() {return event_flags;} + dSv_player_c& getPlayer() { return player; } + dSv_player_status_a_c& getPlayerStatusA() { return player.getPlayerStatusA(); } + dSv_player_get_item_c& getPlayerGetItem() { return player.getPlayerGetItem(); } + dSv_player_item_c& getPlayerItem() { return player.getPlayerItem(); } + dSv_event_c& getEventFlags() { return event_flags; } - void setPlayerStatusAWallet(u8 lv){ player.setPlayerStatusAWalletLV(lv); } + void setPlayerStatusAWallet(u8 lv) { player.setPlayerStatusAWalletLV(lv); } static const int STAGE_MAX = 4; - + private: dSv_player_c player; u8 unk492[4]; diff --git a/include/functions.h b/include/functions.h index 63dac4c62e9..94db5cfc72a 100644 --- a/include/functions.h +++ b/include/functions.h @@ -18,7 +18,6 @@ extern "C" { void dComIfGs_setMixItemIndex(void); void dComIfGs_setSelectItemIndex(void); void dComIfGs_getMixItemIndex(void); - void dComIfGs_getBottleMax(void); char* strcpy(char*,const char*); int strcmp(char*,char*); void setBombNum__21dSv_player_item_max_cFUcUc(void); @@ -252,6 +251,7 @@ extern "C" { void ARQInit(void); void DCStoreRangeNoSync(void); void __RAS_OSDisableInterrupts_begin(void); + u8 dComIfGs_getBottleMax(void); } // DVD diff --git a/src/d/d_save/d_save.cpp b/src/d/d_save/d_save.cpp index 5e4490b5dc4..aa5e0b5dea7 100644 --- a/src/d/d_save/d_save.cpp +++ b/src/d/d_save/d_save.cpp @@ -1,13 +1,17 @@ #include "d/d_save/d_save/d_save.h" + #include "d/d_com/d_com_inf_game/d_com_inf_game.h" -#include "global.h" u8 dSv_item_rename(u8 item_id) { switch (item_id) { - case OIL_BOTTLE_2: return OIL_BOTTLE; - case RED_BOTTLE_2: return RED_BOTTLE; - case OIL2: return OIL; - default: return item_id; + case OIL_BOTTLE_2: + return OIL_BOTTLE; + case RED_BOTTLE_2: + return RED_BOTTLE; + case OIL2: + return OIL; + default: + return item_id; } } @@ -21,7 +25,7 @@ void dSv_player_status_a_c::init() { for (int i = 0; i < 4; i++) { this->select_item[i] = NO_ITEM; - this->mix_item[i + 1] = NO_ITEM; + this->mix_item[i + 1] = NO_ITEM; dComIfGp_setSelectItem(i); } @@ -53,10 +57,10 @@ void dSv_player_status_a_c::setSelectItemIndex(signed int i_no, u8 item_index) { } u8 dSv_player_status_a_c::getSelectItemIndex(signed int i_no) const { - if (i_no < ITEM_XY_MAX_DUMMY / 2) { - return this->select_item[i_no]; - } - return 0; + if (i_no < ITEM_XY_MAX_DUMMY / 2) { + return this->select_item[i_no]; + } + return 0; } void dSv_player_status_a_c::setMixItemIndex(signed int i_no, u8 item_index) { @@ -66,18 +70,21 @@ void dSv_player_status_a_c::setMixItemIndex(signed int i_no, u8 item_index) { } u8 dSv_player_status_a_c::getMixItemIndex(signed int i_no) const { - if (i_no < ITEM_XY_MAX_DUMMY / 2) { - return this->mix_item[i_no + 1]; - } - return 0; + if (i_no < ITEM_XY_MAX_DUMMY / 2) { + return this->mix_item[i_no + 1]; + } + return 0; } u16 dSv_player_status_a_c::getRupeeMax(void) const { - if (current_wallet < 3) { // if you make this a default, it wont match. Compiler, pls. - switch(current_wallet) { - case WALLET: return 300; - case BIG_WALLET: return 600; - case GIANT_WALLET: return 1000; + if (current_wallet < 3) { // if you make this a default, it wont match. Compiler, pls. + switch (current_wallet) { + case WALLET: + return 300; + case BIG_WALLET: + return 600; + case GIANT_WALLET: + return 1000; } } return 0; @@ -91,22 +98,21 @@ int dSv_player_status_a_c::isMagicFlag(u8 i_magic) const { } void dSv_player_status_b_c::init() { - - this->unk4 = 0; - this->unk0 = 0; - this->transform_level_flag = 0; - this->dark_clear_level_flag = 0; - this->unk10 = 0; - this->time_of_day = lbl_80451D58; - this->unk16 = 0; + this->unk4 = 0; + this->unk0 = 0; + this->transform_level_flag = 0; + this->dark_clear_level_flag = 0; + this->unk10 = 0; + this->time_of_day = lbl_80451D58; + this->unk16 = 0; - for (int i = 0; i < 3; i++) { - this->unk18[i] = 0; - } + for (int i = 0; i < 3; i++) { + this->unk18[i] = 0; + } } void dSv_player_status_b_c::onDarkClearLV(int flagOnOff) { - this->dark_clear_level_flag |= (u8)(1 << flagOnOff); + this->dark_clear_level_flag |= (u8)(1 << flagOnOff); } bool dSv_player_status_b_c::isDarkClearLV(int unk) const { @@ -136,16 +142,16 @@ void dSv_horse_place_c::init(void) { } void dSv_horse_place_c::set(const char* i_name, const cXyz& i_position, short i_angle, signed char i_room_id) { - strcpy((char*)current_stage, i_name); - this->position.x = i_position.x; - this->position.y = i_position.y; - this->position.z = i_position.z; - this->angle = i_angle; - this->room_id = i_room_id; + strcpy(current_stage, i_name); + this->position.x = i_position.x; + this->position.y = i_position.y; + this->position.z = i_position.z; + this->angle = i_angle; + this->room_id = i_room_id; } void dSv_player_return_place_c::init(void) { - strcpy((char*)current_stage,(char*)lbl_80379234+1); + strcpy(current_stage, (char*)lbl_80379234 + 1); this->room_id = 1; this->spawn_id = 0; this->unk10 = 21; @@ -153,7 +159,7 @@ void dSv_player_return_place_c::init(void) { } void dSv_player_return_place_c::set(const char* i_name, s8 i_room_id, u8 i_spawn_id) { - strcpy((char*)current_stage, i_name); + strcpy(current_stage, i_name); this->room_id = i_room_id; this->spawn_id = i_spawn_id; } @@ -161,7 +167,7 @@ void dSv_player_return_place_c::set(const char* i_name, s8 i_room_id, u8 i_spawn void dSv_player_field_last_stay_info_c::init() { float position_val; - strcpy((char*)last_stage, (char*)lbl_80379234); + strcpy(last_stage, (char*)lbl_80379234); position_val = lbl_80451D5C; this->last_position.x = lbl_80451D5C; @@ -179,11 +185,9 @@ void dSv_player_field_last_stay_info_c::init() { } void dSv_player_field_last_stay_info_c::set(const char* i_name, const cXyz& i_last_position, short i_last_angle, signed char i_last_spawn_id, u8 i_last_room_id) { - strcpy((char*)last_stage, i_name); + strcpy(last_stage, i_name); - this->last_position.x = i_last_position.x; - this->last_position.y = i_last_position.y; - this->last_position.z = i_last_position.z; + this->last_position = i_last_position; this->last_angle = i_last_angle; this->last_spawn_id = i_last_spawn_id; this->last_room_id = i_last_room_id; @@ -200,48 +204,45 @@ void dSv_player_field_last_stay_info_c::onRegionBit(int i_region_bit) { } bool dSv_player_field_last_stay_info_c::isRegionBit(int param_1) const { - if ((param_1 >= 0) && (param_1 < 8)) { - return (last_region & (u8)(1 << param_1)) ? true : false; - } - return false; + if ((param_1 >= 0) && (param_1 < 8)) { + return (last_region & (u8)(1 << param_1)) ? true : false; + } + return false; } void dSv_player_last_mark_info_c::init(void) { - float position; - - strcpy((char*)ooccoo_stage,(char*)lbl_80379234); - position = lbl_80451D5C; - this->ooccoo_position.x = lbl_80451D5C; - this->ooccoo_position.y = position; - this->ooccoo_position.z = position; - this->ooccoo_angle = 0; - this->ooccoo_room_id = 0; - this->ooccoo_spawn_id = 0; - this->unk24 = -1; - - for (int i = 0; i < 3; i++) { - this->unk25[i] = 0; - } + float position; + + strcpy(ooccoo_stage, (char*)lbl_80379234); + position = lbl_80451D5C; + this->ooccoo_position.x = lbl_80451D5C; + this->ooccoo_position.y = position; + this->ooccoo_position.z = position; + this->ooccoo_angle = 0; + this->ooccoo_room_id = 0; + this->ooccoo_spawn_id = 0; + this->unk24 = -1; + + for (int i = 0; i < 3; i++) { + this->unk25[i] = 0; + } } void dSv_player_last_mark_info_c::setWarpItemData(const char* i_ooccoo_stage, const cXyz& i_ooccoo_position, short i_ooccoo_angle, s8 i_ooccoo_room_id, u8 unk1, u8 unk2) { - strcpy((char*)ooccoo_stage,i_ooccoo_stage); - this->ooccoo_position.x = i_ooccoo_position.x; - this->ooccoo_position.y = i_ooccoo_position.y; - this->ooccoo_position.z = i_ooccoo_position.z; - this->ooccoo_angle = i_ooccoo_angle; - this->ooccoo_room_id = i_ooccoo_room_id; + strcpy(ooccoo_stage, i_ooccoo_stage); + this->ooccoo_position = i_ooccoo_position; + this->ooccoo_angle = i_ooccoo_angle; + this->ooccoo_room_id = i_ooccoo_room_id; } void dSv_player_item_c::init(void) { - for (int i = 0; i < 24; i++) { - this->items[i] = NO_ITEM; - this->item_slots[i] = NO_ITEM; - } + for (int i = 0; i < 24; i++) { + this->items[i] = NO_ITEM; + this->item_slots[i] = NO_ITEM; + } } void dSv_player_item_c::setItem(int current_items_index, u8 new_items_index) { - if (current_items_index < MAX_ITEM_SLOTS) { this->items[current_items_index] = new_items_index; this->setLineUpItem(); @@ -268,7 +269,7 @@ u8 dSv_player_item_c::getItem(int param_1, bool param_2) const { for (int select_item_index = 0; select_item_index < 2; select_item_index++) { current_select_item_index = getSelectItemIndex(select_item_index); if (((param_1 == (current_select_item_index)) || - (current_select_item_index = dComIfGs_getMixItemIndex(select_item_index), param_1 == (current_select_item_index))) && + (current_select_item_index = dComIfGs_getMixItemIndex(select_item_index), param_1 == (current_select_item_index))) && (current_select_item_index = dComIfGs_getMixItemIndex(select_item_index), (current_select_item_index) != NO_ITEM)) { current_select_item_index = getSelectItemIndex(select_item_index); IVar1 = items[current_select_item_index]; @@ -323,8 +324,7 @@ u8 dSv_player_item_c::getItem(int param_1, bool param_2) const { #else asm u8 dSv_player_item_c::getItem(int param_1, bool param_2) const { nofralloc - #include "d/d_save/d_save/asm/func_80033030.s" - +#include "d/d_save/d_save/asm/func_80033030.s" } #endif @@ -349,7 +349,7 @@ void dSv_player_item_c::setLineUpItem(void) { #else asm void dSv_player_item_c::setLineUpItem(void) { nofralloc - #include "d/d_save/d_save/asm/func_800332F8.s" +#include "d/d_save/d_save/asm/func_800332F8.s" } #endif @@ -361,24 +361,24 @@ u8 dSv_player_item_c::getLineUpItem(int slot_number) const { } #ifdef NONMATCHING -void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2){ +void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2) { u8 current_item_index; u8 new_item_index; current_item_index = dSv_item_rename(i_item_id_1); new_item_index = dSv_item_rename(i_item_id_2); - + for (int i = 0; i < 4; i++) { // sanitize input to make sure it's only a bottle - if (current_item_index == items[i+11]) { - setItem(i+11,new_item_index); + if (current_item_index == items[i + 11]) { + setItem(i + 11, new_item_index); // if hotsprings water, turn on the timer if (new_item_index == 107) { - setHotSpringTimer(i+11); + setHotSpringTimer(i + 11); } for (int j = 0; j < 4; j++) { j = getSelectItemIndex(i); - if (i+11 == j) { + if (i + 11 == j) { dComIfGp_setSelectItem(j); } } @@ -386,51 +386,51 @@ void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2){ } } #else -asm void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2){ - nofralloc - #include "d/d_save/d_save/asm/func_80033370.s" +asm void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2) { + nofralloc +#include "d/d_save/d_save/asm/func_80033370.s" } #endif // this is 1 instruction off #ifdef NONMATCHING -void dSv_player_item_c::setEmptyBottleItemIn(u8 i_item_id){ +void dSv_player_item_c::setEmptyBottleItemIn(u8 i_item_id) { u8 item_id = (dSv_item_rename(i_item_id)); - setBottleItemIn(96,item_id); + setBottleItemIn(96, item_id); } #else -asm void dSv_player_item_c::setEmptyBottleItemIn(u8 i_item_id){ +asm void dSv_player_item_c::setEmptyBottleItemIn(u8 i_item_id) { nofralloc - #include "d/d_save/d_save/asm/func_80033450.s" +#include "d/d_save/d_save/asm/func_80033450.s" } #endif asm void dSv_player_item_c::setEmptyBottle(void) { - nofralloc - #include "d/d_save/d_save/asm/func_80033494.s" + nofralloc +#include "d/d_save/d_save/asm/func_80033494.s" } -asm void dSv_player_item_c::setEmptyBottle(u8){ +asm void dSv_player_item_c::setEmptyBottle(u8) { nofralloc - #include "d/d_save/d_save/asm/func_80033514.s" +#include "d/d_save/d_save/asm/func_80033514.s" } asm void dSv_player_item_c::setEquipBottleItemIn(u8, u8) { nofralloc - #include "d/d_save/d_save/asm/func_80033598.s" +#include "d/d_save/d_save/asm/func_80033598.s" } void dSv_player_item_c::setEquipBottleItemEmpty(u8 selected_index) { - setEquipBottleItemIn(selected_index,EMPTY_BOTTLE); + setEquipBottleItemIn(selected_index, EMPTY_BOTTLE); } -u8 dSv_player_item_c::checkBottle(u8 i_item_id){ +u8 dSv_player_item_c::checkBottle(u8 i_item_id) { u8 item_id; u8 num_bottles = 0; item_id = dSv_item_rename(i_item_id); for (int i = 0; i < BOTTLE_MAX; i++) { - if (item_id == items[i+0xb]) { + if (item_id == items[i + 0xb]) { num_bottles++; } } @@ -439,14 +439,15 @@ u8 dSv_player_item_c::checkBottle(u8 i_item_id){ asm u8 dSv_player_item_c::checkInsectBottle(void){ nofralloc - #include "d/d_save/d_save/asm/func_80033754.s" +#include "d/d_save/d_save/asm/func_80033754.s" } u8 dSv_player_item_c::checkEmptyBottle(void) { u8 num = 0; - for(int i = 0; i < BOTTLE_MAX; i++) { - if(items[i+0xb] == EMPTY_BOTTLE) { + for (int i = 0; i < BOTTLE_MAX; i++) { + // Loop through the bottle slots (11 - 14) and increment counter for every empty bottle + if (items[i + SLOT_11] == EMPTY_BOTTLE) { num++; } } @@ -455,81 +456,81 @@ u8 dSv_player_item_c::checkEmptyBottle(void) { asm void dSv_player_item_c::setBombBagItemIn(u8, u8, bool) { nofralloc - #include "d/d_save/d_save/asm/func_80033828.s" +#include "d/d_save/d_save/asm/func_80033828.s" } asm void dSv_player_item_c::setBombBagItemIn(u8, u8, u8, bool) { nofralloc - #include "d/d_save/d_save/asm/func_80033910.s" +#include "d/d_save/d_save/asm/func_80033910.s" } -void dSv_player_item_c::setEmptyBombBagItemIn(u8 param_1,bool param_2) { - setBombBagItemIn(BOMB_BAG_LV1,param_1,param_2); +void dSv_player_item_c::setEmptyBombBagItemIn(u8 param_1, bool param_2) { + setBombBagItemIn(BOMB_BAG_LV1, param_1, param_2); } -void dSv_player_item_c::setEmptyBombBagItemIn(u8 param_1,u8 param_2, bool param_3) { - setBombBagItemIn(BOMB_BAG_LV1,param_1,param_2,param_3); +void dSv_player_item_c::setEmptyBombBagItemIn(u8 param_1, u8 param_2, bool param_3) { + setBombBagItemIn(BOMB_BAG_LV1, param_1, param_2, param_3); } // this is a few instructions off #ifdef NONMATCHING void dSv_player_item_c::setEmptyBombBag(void) { + int current_item_index; + u8 uVar1; - int current_item_index; - u8 uVar1; - - for (int i = 0; i < 3; i++) { - current_item_index = (u8)(i + 15); - uVar1 = getItem(current_item_index,true); + for (int i = 0; i < 3; i++) { + current_item_index = (u8)(i + 15); + uVar1 = getItem(current_item_index, true); - if (uVar1 == 0xff) { - setItem(current_item_index,80); - return; + if (uVar1 == 0xff) { + setItem(current_item_index, 80); + return; + } } - } } #else asm void dSv_player_item_c::setEmptyBombBag(void) { nofralloc - #include "d/d_save/d_save/asm/func_80033A88.s" +#include "d/d_save/d_save/asm/func_80033A88.s" } #endif -asm void dSv_player_item_c::setEmptyBombBag(u8, u8) { +asm void dSv_player_item_c::setEmptyBombBag(u8, u8){ nofralloc - #include "d/d_save/d_save/asm/func_80033B08.s" +#include "d/d_save/d_save/asm/func_80033B08.s" } u8 dSv_player_item_c::checkBombBag(u8 param_1) { - u8 ok = 0; + u8 counter = 0; - for (int i = 0; i < 3; i++) { - if (param_1 == this->items[i + 15]) { - ok++; + for (int i = 0; i < BOMB_BAG_MAX; i++) { + // Loop through the bomb bag slots (15 - 17) and increment counter for every match + if (param_1 == this->items[i + SLOT_15]) { + counter++; } } - return ok; + return counter; } asm void dSv_player_item_c::setWarashibeItem(u8) { nofralloc - #include "d/d_save/d_save/asm/func_80033C2C.s" +#include "d/d_save/d_save/asm/func_80033C2C.s" } void dSv_player_item_c::setRodTypeLevelUp(void) { - int current_fishing_rod_item_id = this->items[0x14]; + int current_fishing_rod_item_id = this->items[SLOT_20]; switch (current_fishing_rod_item_id) { case BEE_ROD: { - this->items[0x14] = JEWEL_BEE_ROD; + this->items[SLOT_20] = JEWEL_BEE_ROD; break; } case WORM_ROD: { - this->items[0x14] = JEWEL_WORM_ROD; + this->items[SLOT_20] = JEWEL_WORM_ROD; break; } case FISHING_ROD_1: { - this->items[0x14] = JEWEL_ROD; + this->items[SLOT_20] = JEWEL_ROD; break; } } @@ -544,15 +545,15 @@ void dSv_player_item_c::setRodTypeLevelUp(void) { void dSv_player_item_c::setBaitItem(u8 param_1) { switch (param_1) { case BEE_CHILD: { - isFirstBit(61) ? this->items[0x14] = JEWEL_BEE_ROD : this->items[0x14] = BEE_ROD; + isFirstBit(61) ? this->items[SLOT_20] = JEWEL_BEE_ROD : this->items[SLOT_20] = BEE_ROD; break; } case WORM: { - isFirstBit(61) ? this->items[0x14] = JEWEL_WORM_ROD : this->items[0x14] = WORM_ROD; + isFirstBit(61) ? this->items[SLOT_20] = JEWEL_WORM_ROD : this->items[SLOT_20] = WORM_ROD; break; } case NO_ITEM: { - isFirstBit(61) ? this->items[0x14] = JEWEL_ROD : this->items[0x14] = FISHING_ROD_1; + isFirstBit(61) ? this->items[SLOT_20] = JEWEL_ROD : this->items[SLOT_20] = FISHING_ROD_1; break; } } @@ -564,7 +565,7 @@ void dSv_player_item_c::setBaitItem(u8 param_1) { #else asm void dSv_player_item_c::setBaitItem(u8 param_1) { nofralloc - #include "d/d_save/d_save/asm/func_80033D40.s" +#include "d/d_save/d_save/asm/func_80033D40.s" } #endif @@ -583,23 +584,23 @@ void dSv_player_get_item_c::onFirstBit(u8 i_itemno) { #else asm void dSv_player_get_item_c::onFirstBit(u8) { nofralloc - #include "d/d_save/d_save/asm/func_80033E60.s" +#include "d/d_save/d_save/asm/func_80033E60.s" } #endif asm void dSv_player_get_item_c::offFirstBit(u8) { nofralloc - #include "d/d_save/d_save/asm/func_80033E94.s" +#include "d/d_save/d_save/asm/func_80033E94.s" } -asm bool dSv_player_get_item_c::isFirstBit(u8) const { +asm int dSv_player_get_item_c::isFirstBit(u8) const { nofralloc - #include "d/d_save/d_save/asm/func_80033EC8.s" +#include "d/d_save/d_save/asm/func_80033EC8.s" } void dSv_player_item_record_c::init(void) { this->bow = 0; - + for (int i = 0; i < 3; i++) { this->bomb_bags[i] = 0; } @@ -627,83 +628,74 @@ void dSv_player_item_record_c::setBottleNum(u8 i_bottleIdx, u8 bottle_num) { this->bottles[i_bottleIdx] = bottle_num; } -#ifdef NONMATCHING u8 dSv_player_item_record_c::addBottleNum(u8 i_bottleIdx, short param_2) { int iVar3 = this->bottles[i_bottleIdx] + param_2; - dSv_player_item_c ok; - - ok.getItem((u8)(i_bottleIdx + 0xB),true); + g_dComIfG_gameInfo.save_file.getPlayerItem().getItem((u8)(i_bottleIdx + 0xB), true); if (iVar3 < 0) { this->bottles[i_bottleIdx] = 0; } else if (iVar3 > dComIfGs_getBottleMax()) { - this->bottles[i_bottleIdx] = dComIfGs_getBottleMax(); + this->bottles[i_bottleIdx] = dComIfGs_getBottleMax(); } else { - this->bottles[i_bottleIdx] = iVar3; + this->bottles[i_bottleIdx] = iVar3; } return this->bottles[i_bottleIdx]; } -#else -asm u8 dSv_player_item_record_c::addBottleNum(u8 i_bottleIdx, short param_2) { - nofralloc - #include "d/d_save/d_save/asm/func_80033F9C.s" -} -#endif u8 dSv_player_item_record_c::getBottleNum(u8 i_bottleIdx) const { return this->bottles[i_bottleIdx]; } void dSv_player_item_max_c::init(void) { - for (int i = 0; i < 7; i++) { this->item_capacities[i] = 30; } - setBombNum(NORMAL_BOMB,30); - setBombNum(WATER_BOMB,15); - setBombNum(POKE_BOMB,10); + setBombNum(NORMAL_BOMB, 30); + setBombNum(WATER_BOMB, 15); + setBombNum(POKE_BOMB, 10); this->item_capacities[7] = 0; } -void dSv_player_item_max_c::setBombNum(u8 bomb_id,u8 bomb_max) { +void dSv_player_item_max_c::setBombNum(u8 bomb_id, u8 bomb_max) { switch (bomb_id) { - case NORMAL_BOMB: this->item_capacities[1] = bomb_max; return; - case WATER_BOMB: this->item_capacities[2] = bomb_max; return; - case POKE_BOMB: this->item_capacities[6] = bomb_max; return; + case NORMAL_BOMB: + this->item_capacities[1] = bomb_max; + return; + case WATER_BOMB: + this->item_capacities[2] = bomb_max; + return; + case POKE_BOMB: + this->item_capacities[6] = bomb_max; + return; } } -// this is close, the isFirstBit keeps screwing everything up :( -#ifdef NONMATCHING u8 dSv_player_item_max_c::getBombNum(u8 param_1) const { u8 iVar3; - + iVar3 = 0x1; - if (isFirstBit(79)) { + if (g_dComIfG_gameInfo.save_file.getPlayerGetItem().isFirstBit(BOMB_BAG_LV2)) { iVar3 = 0x2; } switch (param_1) { - case WATER_BOMB: return (u8)(this->bomb_bags_ammo_max[0x1] * iVar3); - case NORMAL_BOMB: return (u8)(this->bomb_bags_ammo_max[0x1] * iVar3); - case POKE_BOMB: return (u8)(this->unk_ammo_max[0x2] * iVar3); - default: return 0; + case NORMAL_BOMB: + return (u8)(this->item_capacities[0x1] * iVar3); + case WATER_BOMB: + return (u8)(this->item_capacities[0x2] * iVar3); + case POKE_BOMB: + return (u8)(this->item_capacities[0x6] * iVar3); + default: + return 0; } } -#else -asm u8 dSv_player_item_max_c::getBombNum(u8 param_1) const { - nofralloc - #include "d/d_save/d_save/asm/func_800340F8.s" -} -#endif void dSv_player_collect_c::init(void) { - for (int i = 0; i < 8; i++) { this->unk0[i] = 0; } - + this->unk8 = 0; this->crystal = 0; this->mirror = 0; @@ -716,11 +708,11 @@ void dSv_player_collect_c::setCollect(int param_1, u8 i_item) { } bool dSv_player_collect_c::isCollect(int param_1, u8 i_item) const { - return this->unk0[param_1] & (u8)(1 << i_item) ? true : false; + return this->unk0[param_1] & (u8)(1 << i_item) ? true : false; } void dSv_player_collect_c::onCollectCrystal(u8 i_item) { - this->crystal |= (u8)(1 << i_item); + this->crystal |= (u8)(1 << i_item); } bool dSv_player_collect_c::isCollectCrystal(u8 i_item) const { @@ -728,7 +720,7 @@ bool dSv_player_collect_c::isCollectCrystal(u8 i_item) const { } void dSv_player_collect_c::onCollectMirror(u8 i_item) { - this->mirror |= (u8)(1 << i_item); + this->mirror |= (u8)(1 << i_item); } bool dSv_player_collect_c::isCollectMirror(u8 i_item) const { @@ -755,7 +747,7 @@ void dSv_light_drop_c::init(void) { } } -void dSv_light_drop_c::setLightDropNum(u8 i_nowLevel,u8 param_2) { +void dSv_light_drop_c::setLightDropNum(u8 i_nowLevel, u8 param_2) { if ((i_nowLevel < LIGHT_DROP_STAGE) || (i_nowLevel > 6)) { this->light_drop_counts[i_nowLevel] = param_2; } @@ -783,8 +775,8 @@ bool dSv_light_drop_c::isLightDropGetFlag(u8 i_nowLevel) const { void dSv_letter_info_c::init(void) { for (int i = 0; i < 2; i++) { - this->letter_read_flags[i] = 0; - this->letter_read_flags[i + 2] = 0; + this->letter_get_bitfields[i] = 0; + this->letter_read_bitfields[i] = 0; } for (int i = 0; i < LETTER_INFO_BIT; i++) { @@ -793,29 +785,20 @@ void dSv_letter_info_c::init(void) { } void dSv_letter_info_c::onLetterGetFlag(int i_no) { - this->letter_read_flags[i_no >> 0x5] |= 0x1 << (i_no & 0x1F); + this->letter_get_bitfields[i_no >> 0x5] |= 0x1 << (i_no & 0x1F); } bool dSv_letter_info_c::isLetterGetFlag(int i_no) const { - return this->letter_read_flags[i_no >> 0x5] & (1 << (i_no & 0x1F)) ? true : false; + return this->letter_get_bitfields[i_no >> 0x5] & (1 << (i_no & 0x1F)) ? true : false; } void dSv_letter_info_c::onLetterReadFlag(int i_no) { - (this->letter_read_flags + (i_no >> 0x5))[0x2] |= 0x1 << (i_no & 0x1F); + this->letter_read_bitfields[i_no >> 0x5] |= 0x1 << (i_no & 0x1F); } -#ifdef NONMATCHING -bool dSv_letter_info_c::isLetterReadFlag(int i_no) const { - u32 tmp = this->letter_read_flags[(i_no >> 5) + 2]; - int tmp2 = (1 << (i_no & 0x1F)); - return tmp2 & tmp ? true : false; +int dSv_letter_info_c::isLetterReadFlag(int i_no) const { + return this->letter_read_bitfields[i_no >> 5] & 1 << (i_no & 0x1F) ? 1 : 0; } -#else -asm bool dSv_letter_info_c::isLetterReadFlag(int) const { - nofralloc - #include "d/d_save/d_save/asm/func_8003449C.s" -} -#endif void dSv_fishing_info_c::init(void) { for (int i = 0; i < 16; i++) { @@ -834,10 +817,10 @@ void dSv_fishing_info_c::addFishCount(u8 fish_index) { #ifdef NONMATCHING namespace d_meter2_info { class dMeter2Info_c { - public: - void getString(unsigned long, char*, JMSMesgEntry_c *); + public: + void getString(unsigned long, char*, JMSMesgEntry_c*); }; -} +} // namespace d_meter2_info void dSv_player_info_c::init(void) { unsigned long a = 0x382; @@ -848,8 +831,8 @@ void dSv_player_info_c::init(void) { d_meter2_info::dMeter2Info_c ok; - ok.getString(a,(char*)this->link_name,c); - ok.getString(b,(char*)this->epona_name,d); + ok.getString(a, (char*)this->link_name, c); + ok.getString(b, (char*)this->epona_name, d); this->unk4 = 0; this->unk0 = 0; @@ -866,7 +849,7 @@ void dSv_player_info_c::init(void) { #else asm void dSv_player_info_c::init(void) { nofralloc - #include "d/d_save/d_save/asm/func_80034518.s" +#include "d/d_save/d_save/asm/func_80034518.s" } #endif @@ -877,10 +860,10 @@ void dSv_player_config_c::init(void) { os_sound_mode = OSGetSoundMode(); if (os_sound_mode == 0) { this->sound_mode = 0; - Z2AudioMgr_NS_setOutputMode(lbl_80451368,0); + Z2AudioMgr_NS_setOutputMode(lbl_80451368, 0); } else { this->sound_mode = 1; - Z2AudioMgr_NS_setOutputMode(lbl_80451368,1); + Z2AudioMgr_NS_setOutputMode(lbl_80451368, 1); } this->unk2 = 0; @@ -897,12 +880,12 @@ void dSv_player_config_c::init(void) { // a few instructions off #ifdef NONMATCHING u32 dSv_player_config_c::checkVibration(void) const { - return _sRumbleSupported & 0x80000000 ? getNowVibration() : 0; + return _sRumbleSupported & 0x80000000 ? getNowVibration() : 0; } #else asm u32 dSv_player_config_c::checkVibration(void) const { nofralloc - #include "d/d_save/d_save/asm/func_80034644.s" +#include "d/d_save/d_save/asm/func_80034644.s" } #endif @@ -957,22 +940,22 @@ void dSv_memBit_c::init(void) { } void dSv_memBit_c::onTbox(int i_no) { - this->area_flags_bitfields1[i_no >> 5] |= 1 << (i_no & 0x1F); + this->area_flags_bitfields1[i_no >> 5] |= 1 << (i_no & 0x1F); } void dSv_memBit_c::offTbox(int i_no) { - this->area_flags_bitfields1[i_no >> 5] &= ~(1 << (i_no & 0x1F)); + this->area_flags_bitfields1[i_no >> 5] &= ~(1 << (i_no & 0x1F)); } bool dSv_memBit_c::isTbox(int i_no) const { - return 1 << (i_no & 0x1f) & this->area_flags_bitfields1[i_no >> 0x5] ? true : false; + return 1 << (i_no & 0x1f) & this->area_flags_bitfields1[i_no >> 0x5] ? true : false; } void dSv_memBit_c::onSwitch(int i_no) { - (this->area_flags_bitfields1 + (i_no >> 0x5))[0x2] |= 0x1 << (i_no & 0x1F); + (this->area_flags_bitfields1 + (i_no >> 0x5))[0x2] |= 0x1 << (i_no & 0x1F); } void dSv_memBit_c::offSwitch(int i_no) { - (this->area_flags_bitfields1 + (i_no >> 0x5))[0x2] &= ~(0x1 << (i_no & 0x1F)); + (this->area_flags_bitfields1 + (i_no >> 0x5))[0x2] &= ~(0x1 << (i_no & 0x1F)); } bool dSv_memBit_c::isSwitch(int i_no) const { @@ -982,24 +965,23 @@ bool dSv_memBit_c::isSwitch(int i_no) const { // instruction in wrong place #ifdef NONMATCHING bool dSv_memBit_c::revSwitch(int i_no) { - int uVar2 = 0x1 << (i_no & 0x1F); - u32* puVar1 = (i_no >> 0x5) + this->area_flags_bitfields1; - puVar1[0x2] ^= uVar2; - return puVar1[0x2] & uVar2 ? true : false; + unsigned int tmp = 1 << (i_no & 0x1F); + (this->area_flags_bitfields1 + (i_no >> 0x5))[0x2] ^= tmp; + return (this->area_flags_bitfields1 + (i_no >> 0x5))[0x2] & tmp ? true : false; } #else -asm u8 dSv_memBit_c::revSwitch(int){ +asm u8 dSv_memBit_c::revSwitch(int) { nofralloc - #include "d/d_save/d_save/asm/func_8003488C.s" +#include "d/d_save/d_save/asm/func_8003488C.s" } #endif void dSv_memBit_c::onItem(int i_no) { - (this->area_flags_bitfields1 + (i_no >> 0x5))[0x6] |= 0x1 << (i_no & 0x1F); + (this->area_flags_bitfields1 + (i_no >> 0x5))[0x6] |= 0x1 << (i_no & 0x1F); } bool dSv_memBit_c::isItem(int i_no) const { - return (&this->rupee_flags_bitfields)[i_no >> 0x5] & 0x1 << (i_no & 0x1F) ? true : false; + return (&this->rupee_flags_bitfields)[i_no >> 0x5] & 0x1 << (i_no & 0x1F) ? true : false; } void dSv_memBit_c::onDungeonItem(int i_no) { @@ -1007,11 +989,11 @@ void dSv_memBit_c::onDungeonItem(int i_no) { } bool dSv_memBit_c::isDungeonItem(int i_no) const { - return this->dungeons_flags & (u8)(1 << i_no) ? true : false; + return this->dungeons_flags & (u8)(1 << i_no) ? true : false; } void dSv_event_c::init(void) { - for (int i = 0; i < 256; i++) { + for (int i = 0; i < MAX_EVENTS; i++) { this->events[i] = 0; } setInitEventBit(); @@ -1063,11 +1045,11 @@ void dSv_memory2_c::init(void) { } void dSv_memory2_c::onVisitedRoom(int i_no) { - this->unk0[i_no >> 5] |= 1 << (i_no & 0x1F); + this->unk0[i_no >> 5] |= 1 << (i_no & 0x1F); } void dSv_memory2_c::offVisitedRoom(int i_no) { - this->unk0[i_no >> 5] &= ~(1 << (i_no & 0x1F)); + this->unk0[i_no >> 5] &= ~(1 << (i_no & 0x1F)); } bool dSv_memory2_c::isVisitedRoom(int param_1) { @@ -1128,7 +1110,6 @@ void dSv_zoneBit_c::init(void) { for (int i = 0; i < 2; i++) { this->switch_bitfield[i] = 0; } - for (int i = 0; i < 2; i++) { this->item_bitfield[i] = 0; @@ -1155,7 +1136,7 @@ void dSv_zoneBit_c::offSwitch(int i_no) { } bool dSv_zoneBit_c::isSwitch(int i_no) const { - return this->switch_bitfield[i_no >> 4] & 1 << (i_no & 0xF) ? true : false; + return this->switch_bitfield[i_no >> 4] & 1 << (i_no & 0xF) ? true : false; } // instruction in wrong place @@ -1168,7 +1149,7 @@ bool dSv_zoneBit_c::revSwitch(int i_no) { #else asm bool dSv_zoneBit_c::revSwitch(int i_no) { nofralloc - #include "d/d_save/d_save/asm/func_80034D78.s" +#include "d/d_save/d_save/asm/func_80034D78.s" } #endif @@ -1195,7 +1176,7 @@ void dSv_zoneBit_c::onItem(int i_no) { } bool dSv_zoneBit_c::isItem(int i_no) const { - return this->item_bitfield[i_no >> 4] & 1 << (i_no & 0xF) ? true : false; + return this->item_bitfield[i_no >> 4] & 1 << (i_no & 0xF) ? true : false; } void dSv_zoneBit_c::onOneItem(int i_no) { @@ -1221,7 +1202,7 @@ void dSv_zoneActor_c::off(int i_id) { } bool dSv_zoneActor_c::is(int i_id) const { - return this->actor_bitfield[i_id >> 5] & 1 << (i_id & 0x1F) ? true : false; + return this->actor_bitfield[i_id >> 5] & 1 << (i_id & 0x1F) ? true : false; } void dSv_zone_c::init(int param_1) { @@ -1251,7 +1232,6 @@ void dSv_info_c::init(void) { this->events.init(); } - void dSv_save_c::init(void) { this->player.init(); for (int i = 0; i < 0x20; i++) { @@ -1273,30 +1253,27 @@ dSv_memory2_c* dSv_save_c::getSave2(int i_stage2No) { #ifdef NONMATCHING void dSv_info_c::getSave(int i_stageNo) { for (int i = 0; i < dSv_save_c::STAGE_MAX; i++) { - } } #else asm void dSv_info_c::getSave(int i_stageNo) { nofralloc - #include "d/d_save/d_save/asm/func_800350BC.s" +#include "d/d_save/d_save/asm/func_800350BC.s" } #endif #ifdef NONMATCHING void dSv_info_c::getSave(int i_stageNo) { for (int i = 0; i < dSv_save_c::STAGE_MAX; i++) { - } for (int i = 0; i < dSv_save_c::STAGE_MAX; i++) { - } } #else asm void dSv_info_c::putSave(int i_stageNo) { nofralloc - #include "d/d_save/d_save/asm/func_800350F0.s" +#include "d/d_save/d_save/asm/func_800350F0.s" } #endif @@ -1319,21 +1296,18 @@ u32 dSv_info_c::createZone(int param_1) { void dSv_info_c::onSwitch(int i_no, int i_roomNo) { if ((i_no == -1) || (i_no == 0xFF)) { - return; + return; } - + if (i_no < 0x80) { this->memory.getTempFlags().onSwitch(i_no); - } - else if (i_no < 0xc0) { + } else if (i_no < 0xc0) { this->dungeon_bit.onSwitch(i_no - 0x80); - } - else { - int zoneId = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_no); + } else { + int zoneId = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_no); if (i_no < 0xE0) { this->zones[zoneId].getZoneBit().onSwitch(i_no - 0xC0); - } - else { + } else { this->zones[zoneId].getZoneBit().onOneSwitch(i_no - 0xE0); } } @@ -1341,21 +1315,18 @@ void dSv_info_c::onSwitch(int i_no, int i_roomNo) { void dSv_info_c::offSwitch(int i_no, int i_roomNo) { if ((i_no == -1) || (i_no == 0xFF)) { - return; + return; } - + if (i_no < 0x80) { this->memory.getTempFlags().offSwitch(i_no); - } - else if (i_no < 0xc0) { + } else if (i_no < 0xc0) { this->dungeon_bit.offSwitch(i_no - 0x80); - } - else { - int zoneId = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_no); + } else { + int zoneId = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_no); if (i_no < 0xE0) { this->zones[zoneId].getZoneBit().offSwitch(i_no - 0xC0); - } - else { + } else { this->zones[zoneId].getZoneBit().offOneSwitch(i_no - 0xE0); } } @@ -1367,19 +1338,16 @@ bool dSv_info_c::isSwitch(int i_no, int i_roomNo) const { if ((i_no == -1) || (i_no == 0xFF)) { return false; } - + if (i_no < 0x80) { return this->memory.getTempFlags().isSwitch(i_no); - } - else if (i_no < 0xc0) { + } else if (i_no < 0xc0) { return this->dungeon_bit.isSwitch(i_no - 0x80); - } - else { - int zoneId = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_no); + } else { + int zoneId = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_no); if (i_no < 0xE0) { return this->zones[zoneId].getZoneBit().isSwitch(i_no - 0xC0); - } - else { + } else { return this->zones[zoneId].getZoneBit().isOneSwitch(i_no - 0xE0); } } @@ -1387,27 +1355,24 @@ bool dSv_info_c::isSwitch(int i_no, int i_roomNo) const { #else asm bool dSv_info_c::isSwitch(int i_no, int i_roomNo) const { nofralloc - #include "d/d_save/d_save/asm/func_80035360.s" +#include "d/d_save/d_save/asm/func_80035360.s" } #endif void dSv_info_c::onItem(int i_no, int i_roomNo) { if ((i_no == -1) || (i_no == 0xFF)) { - return; + return; } - + if (i_no < 0x80) { this->dungeon_bit.onItem(i_no); - } - else if (i_no < 0xA0) { + } else if (i_no < 0xA0) { this->memory.getTempFlags().onItem(i_no - 0x80); - } - else { - int zoneNo = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_no); + } else { + int zoneNo = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_no); if (i_no < 0xC0) { this->zones[zoneNo].getZoneBit().onItem(i_no - 0xA0); - } - else { + } else { this->zones[zoneNo].getZoneBit().onOneItem(i_no - 0xC0); } } @@ -1415,16 +1380,15 @@ void dSv_info_c::onItem(int i_no, int i_roomNo) { asm bool dSv_info_c::isItem(int i_no, int i_roomNo) const { nofralloc - #include "d/d_save/d_save/asm/func_80035590.s" +#include "d/d_save/d_save/asm/func_80035590.s" } - void dSv_info_c::onActor(int i_id, int i_roomNo) { if (i_id == -1 || i_id == dSv_zoneActor_c::ACTOR_MAX || i_roomNo == -1) { return; } - int zoneNo = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_id); + int zoneNo = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_id); this->zones[zoneNo].getZoneActor().on(i_id); } @@ -1433,26 +1397,26 @@ void dSv_info_c::offActor(int i_id, int i_roomNo) { return; } - int zoneNo = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_id); + int zoneNo = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_id); this->zones[zoneNo].getZoneActor().off(i_id); } asm bool dSv_info_c::isActor(int i_id, int i_roomNo) const { nofralloc - #include "d/d_save/d_save/asm/func_80035724.s" +#include "d/d_save/d_save/asm/func_80035724.s" } asm void dSv_info_c::memory_to_card(char*, int) { nofralloc - #include "d/d_save/d_save/asm/func_80035798.s" +#include "d/d_save/d_save/asm/func_80035798.s" } asm void dSv_info_c::card_to_memory(char*, int) { nofralloc - #include "d/d_save/d_save/asm/func_80035A04.s" +#include "d/d_save/d_save/asm/func_80035A04.s" } asm void dSv_info_c::initdata_to_card(char*, int) { nofralloc - #include "d/d_save/d_save/asm/func_80035BD0.s" +#include "d/d_save/d_save/asm/func_80035BD0.s" } \ No newline at end of file diff --git a/tools/asm-differ b/tools/asm-differ new file mode 160000 index 00000000000..8f966084006 --- /dev/null +++ b/tools/asm-differ @@ -0,0 +1 @@ +Subproject commit 8f9660840060fd9af64ab8e60d05c4480ce600c0