d_com_inf_game / d_save improvements (#82)

* some dcominfg funcs

* add dcom inlines to d_save

* format

* format
This commit is contained in:
TakaRikka
2021-01-11 08:32:56 -08:00
committed by GitHub
parent 8cf6641bd4
commit 7b97550cee
13 changed files with 163 additions and 292 deletions
@@ -1,64 +0,0 @@
/* 8002E4CC 0002B40C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8002E4D0 0002B410 7C 08 02 A6 */ mflr r0
/* 8002E4D4 0002B414 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002E4D8 0002B418 39 61 00 20 */ addi r11, r1, 0x20
/* 8002E4DC 0002B41C 48 33 3C F9 */ bl _savegpr_27
/* 8002E4E0 0002B420 7C 7E 1B 78 */ mr r30, r3
/* 8002E4E4 0002B424 3B E0 00 00 */ li r31, 0
/* 8002E4E8 0002B428 3B 60 00 00 */ li r27, 0
/* 8002E4EC 0002B42C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 8002E4F0 0002B430 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 8002E4F4 0002B434 3B 83 00 9C */ addi r28, r3, 0x9c
/* 8002E4F8 0002B438 57 DD 06 3E */ clrlwi r29, r30, 0x18
lbl_8002E4FC:
/* 8002E4FC 0002B43C 7F 83 E3 78 */ mr r3, r28
/* 8002E500 0002B440 7F 64 DB 78 */ mr r4, r27
/* 8002E504 0002B444 38 A0 00 01 */ li r5, 1
/* 8002E508 0002B448 48 00 4B 29 */ bl getItem__17dSv_player_item_cCFib
/* 8002E50C 0002B44C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8002E510 0002B450 7C 1D 00 40 */ cmplw r29, r0
/* 8002E514 0002B454 40 82 00 10 */ bne lbl_8002E524
/* 8002E518 0002B458 57 E3 06 3E */ clrlwi r3, r31, 0x18
/* 8002E51C 0002B45C 38 03 00 01 */ addi r0, r3, 1
/* 8002E520 0002B460 54 1F 06 3E */ clrlwi r31, r0, 0x18
lbl_8002E524:
/* 8002E524 0002B464 3B 7B 00 01 */ addi r27, r27, 1
/* 8002E528 0002B468 2C 1B 00 3C */ cmpwi r27, 0x3c
/* 8002E52C 0002B46C 41 80 FF D0 */ blt lbl_8002E4FC
/* 8002E530 0002B470 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 8002E534 0002B474 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 8002E538 0002B478 88 63 00 13 */ lbz r3, 0x13(r3)
/* 8002E53C 0002B47C 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 8002E540 0002B480 7C 00 18 40 */ cmplw r0, r3
/* 8002E544 0002B484 40 82 00 10 */ bne lbl_8002E554
/* 8002E548 0002B488 57 E3 06 3E */ clrlwi r3, r31, 0x18
/* 8002E54C 0002B48C 38 03 00 01 */ addi r0, r3, 1
/* 8002E550 0002B490 54 1F 06 3E */ clrlwi r31, r0, 0x18
lbl_8002E554:
/* 8002E554 0002B494 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 8002E558 0002B498 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 8002E55C 0002B49C 88 63 00 14 */ lbz r3, 0x14(r3)
/* 8002E560 0002B4A0 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 8002E564 0002B4A4 7C 00 18 40 */ cmplw r0, r3
/* 8002E568 0002B4A8 40 82 00 10 */ bne lbl_8002E578
/* 8002E56C 0002B4AC 57 E3 06 3E */ clrlwi r3, r31, 0x18
/* 8002E570 0002B4B0 38 03 00 01 */ addi r0, r3, 1
/* 8002E574 0002B4B4 54 1F 06 3E */ clrlwi r31, r0, 0x18
lbl_8002E578:
/* 8002E578 0002B4B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 8002E57C 0002B4BC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 8002E580 0002B4C0 88 63 00 15 */ lbz r3, 0x15(r3)
/* 8002E584 0002B4C4 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 8002E588 0002B4C8 7C 00 18 40 */ cmplw r0, r3
/* 8002E58C 0002B4CC 40 82 00 10 */ bne lbl_8002E59C
/* 8002E590 0002B4D0 57 E3 06 3E */ clrlwi r3, r31, 0x18
/* 8002E594 0002B4D4 38 03 00 01 */ addi r0, r3, 1
/* 8002E598 0002B4D8 54 1F 06 3E */ clrlwi r31, r0, 0x18
lbl_8002E59C:
/* 8002E59C 0002B4DC 7F E3 FB 78 */ mr r3, r31
/* 8002E5A0 0002B4E0 39 61 00 20 */ addi r11, r1, 0x20
/* 8002E5A4 0002B4E4 48 33 3C 7D */ bl _restgpr_27
/* 8002E5A8 0002B4E8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002E5AC 0002B4EC 7C 08 03 A6 */ mtlr r0
/* 8002E5B0 0002B4F0 38 21 00 20 */ addi r1, r1, 0x20
/* 8002E5B4 0002B4F4 4E 80 00 20 */ blr
@@ -1,35 +0,0 @@
/* 8002EDE0 0002BD20 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8002EDE4 0002BD24 7C 08 02 A6 */ mflr r0
/* 8002EDE8 0002BD28 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002EDEC 0002BD2C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8002EDF0 0002BD30 93 C1 00 08 */ stw r30, 8(r1)
/* 8002EDF4 0002BD34 3B C0 00 00 */ li r30, 0
/* 8002EDF8 0002BD38 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 8002EDFC 0002BD3C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 8002EE00 0002BD40 3B E3 01 14 */ addi r31, r3, 0x114
lbl_8002EE04:
/* 8002EE04 0002BD44 7F E3 FB 78 */ mr r3, r31
/* 8002EE08 0002BD48 57 C4 06 3E */ clrlwi r4, r30, 0x18
/* 8002EE0C 0002BD4C 48 00 55 91 */ bl isLightDropGetFlag__16dSv_light_drop_cCFUc
/* 8002EE10 0002BD50 2C 03 00 00 */ cmpwi r3, 0
/* 8002EE14 0002BD54 41 82 00 24 */ beq lbl_8002EE38
/* 8002EE18 0002BD58 7F E3 FB 78 */ mr r3, r31
/* 8002EE1C 0002BD5C 57 C4 06 3E */ clrlwi r4, r30, 0x18
/* 8002EE20 0002BD60 48 00 55 21 */ bl getLightDropNum__16dSv_light_drop_cCFUc
/* 8002EE24 0002BD64 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8002EE28 0002BD68 28 00 00 10 */ cmplwi r0, 0x10
/* 8002EE2C 0002BD6C 40 80 00 0C */ bge lbl_8002EE38
/* 8002EE30 0002BD70 38 60 00 01 */ li r3, 1
/* 8002EE34 0002BD74 48 00 00 14 */ b lbl_8002EE48
lbl_8002EE38:
/* 8002EE38 0002BD78 3B DE 00 01 */ addi r30, r30, 1
/* 8002EE3C 0002BD7C 2C 1E 00 03 */ cmpwi r30, 3
/* 8002EE40 0002BD80 41 80 FF C4 */ blt lbl_8002EE04
/* 8002EE44 0002BD84 38 60 00 00 */ li r3, 0
lbl_8002EE48:
/* 8002EE48 0002BD88 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8002EE4C 0002BD8C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8002EE50 0002BD90 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8002EE54 0002BD94 7C 08 03 A6 */ mtlr r0
/* 8002EE58 0002BD98 38 21 00 10 */ addi r1, r1, 0x10
/* 8002EE5C 0002BD9C 4E 80 00 20 */ blr
@@ -1,4 +0,0 @@
/* 8002F2AC 0002C1EC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 8002F2B0 0002C1F0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 8002F2B4 0002C1F4 38 63 00 8E */ addi r3, r3, 0x8e
/* 8002F2B8 0002C1F8 4E 80 00 20 */ blr
@@ -1,4 +0,0 @@
/* 8002F2CC 0002C20C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 8002F2D0 0002C210 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 8002F2D4 0002C214 A8 63 00 8C */ lha r3, 0x8c(r3)
/* 8002F2D8 0002C218 4E 80 00 20 */ blr
@@ -1,5 +0,0 @@
/* 8002F2DC 0002C21C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 8002F2E0 0002C220 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 8002F2E4 0002C224 88 03 00 97 */ lbz r0, 0x97(r3)
/* 8002F2E8 0002C228 7C 03 07 74 */ extsb r3, r0
/* 8002F2EC 0002C22C 4E 80 00 20 */ blr
@@ -1 +0,0 @@
/* 8002F310 0002C250 4E 80 00 20 */ blr
+56 -11
View File
@@ -107,8 +107,12 @@ public:
dStage_roomControl_c& getRoomControl() { return mRoomControl; }
item_func& getGiveItem() { return give_item; }
u8& getUnkHeart() { return unk_heart; }
void setUnkWarashibe1(u8 num) { unkWarashibe1 = num; }
void setUnkWarashibe2(u8 num) { unkWarashibe2 = num; }
void setItem(u8 slot, u8 i_no) {
mItemSlot = slot;
mItemID = i_no;
}
void setUnkWarashibe1(u8 num) { mItemSlot = num; }
void setUnkWarashibe2(u8 num) { mItemID = num; }
void setZStatus(u8 status, u8 unk) {
mZStatus = status;
unkZStatus = unk;
@@ -171,7 +175,9 @@ private:
/* 0x04DA8 */ u8 field_0x4da8[0x5C];
/* 0x04E04 */ u32 field_0x4e04;
/* 0x04E08 */ u8 field_0x4e08[0x4];
/* 0x04E0C */ u8 field_0x4e0c[0x4];
/* 0x04E0C */ u8 field_0x4e0c;
/* 0x04E0D */ u8 field_0x4e0d;
/* 0x04E0E */ u8 field_0x4e0e[0x2];
/* 0x04E10 */ dDlst_window_c mDrawlistWindow;
/* 0x04ED4 */ dComIfG_camera_info_class mCameraInfo;
/* 0x04E60 */ u8 field_0x4e60[0x28];
@@ -191,8 +197,8 @@ private:
/* 0x04F13 */ u8 field_0x4f13[0x3];
/* 0x04F16 */ u8 unkZStatus;
/* 0x04F17 */ u8 field_0x4f17[0x2E];
/* 0x04F45 */ u8 unkWarashibe1;
/* 0x04F46 */ u8 unkWarashibe2;
/* 0x04F45 */ u8 mItemSlot;
/* 0x04F46 */ u8 mItemID;
/* 0x04F47 */ u8 field_0x4f47[0x13];
/* 0x04F5A */ u8 mNowVibration;
/* 0x04F5B */ u8 field_0x4f5b[0x23];
@@ -217,6 +223,9 @@ public:
// temp for setWarashibeItem
void setPlayUnkWarashibe1(u8 num) { play.setUnkWarashibe1(num); }
void setPlayUnkWarashibe2(u8 num) { play.setUnkWarashibe2(num); }
void setWorldDark(u8 state) { mWorldDark = state; }
u8 setWorldDark() { return mWorldDark; }
dSv_player_c& getPlayer() { return info.getPlayer(); }
dSv_save_c& getSaveFile() { return info.getSaveFile(); }
u32 getNowVibration() { return play.getNowVibration(); }
@@ -243,18 +252,18 @@ private:
/* 0x1D4F8 */ dRes_info_c resource_info2;
/* 0x1D51C */ u8 unk20[0x8DC];
/* 0x1DDF8 */ u8 unk21;
/* 0x1DDF9 */ u8 unk22;
/* 0x1DDFA */ u8 unk23;
/* 0x1DDFB */ u8 unk24;
/* 0x1DDFC */ u8 unk25;
/* 0x1DDF9 */ u8 mWorldDark;
/* 0x1DDFA */ u8 mUnk;
/* 0x1DDFB */ u8 mPolyDamage;
/* 0x1DDFC */ u8 mGrassHide;
/* 0x1DDFD */ u8 unk26[0x3]; // probably padding
/* 0x1DE00 */ u8 unk27;
/* 0x1DE01 */ u8 unk28[0x3]; // probably padding
/* 0x1DE04 */ u8 unk29;
/* 0x1DE05 */ u8 unk30[0x3]; // probably padding
/* 0x1DE08 */ u8 unk31;
/* 0x1DE09 */ u8 unk32;
/* 0x1DE0A */ u8 unk33;
/* 0x1DE09 */ u8 mTargetWarpPt;
/* 0x1DE0A */ u8 mSelectWarpPt;
/* 0x1DE0B */ u8 unk34[0x5]; // probably padding
};
#pragma pack(pop)
@@ -434,5 +443,41 @@ inline void dComIfGs_offEventBit(u16 event) {
inline int dComIfGs_isEventBit(u16 event) {
return g_dComIfG_gameInfo.getSaveFile().getEventFlags().isEventBit(event);
}
inline const char* dComIfGs_getLastWarpMarkStageName(void) {
return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getName();
}
inline cXyz dComIfGs_getLastWarpMarkPlayerPos(void) {
return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getPos();
}
inline s16 dComIfGs_getLastWarpMarkPlayerAngleY(void) {
return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getAngleY();
}
inline s8 dComIfGs_getLastWarpMarkRoomNo(void) {
return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getRoomNo();
}
inline char dComIfGs_getLastWarpAcceptStage(void) {
return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getWarpAcceptStage();
}
inline u8 dComIfGs_getSelectEquipClothes(void) {
return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getSelectEquip(CLOTHING_BITFIELD);
}
inline u8 dComIfGs_getSelectEquipSword(void) {
return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getSelectEquip(SWORD_BITFIELD);
}
inline u8 dComIfGs_getSelectEquipShield(void) {
return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getSelectEquip(SHIELD_BITFIELD);
}
inline u8 dComIfGs_getLightDropNum(u8 area_id) {
return g_dComIfG_gameInfo.getSaveFile().getLightDrop().getLightDropNum(area_id);
}
inline u8 dComIfGs_getSelectItemIndex(int idx) {
return g_dComIfG_gameInfo.getPlayer().getPlayerStatusA().getSelectItemIndex(idx);
}
inline void dComIfGp_setItem(u8 slot, u8 i_no) {
g_dComIfG_gameInfo.getPlay().setItem(slot, i_no);
}
inline u32 dComIfGp_getNowVibration(void) {
return g_dComIfG_gameInfo.getPlay().getNowVibration();
}
#endif