d_event_manager OK, d_kankyo rain WIP (#360)

* d_event_manager OK, d_kankyo rain WIP

* Match createTimg
This commit is contained in:
hatal175 2023-07-03 22:04:51 +03:00 committed by GitHub
parent 92fa379d54
commit 01d9e0a514
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 473 additions and 393 deletions

View File

@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 28.003550% | 1007160 | 3596544
.text | 28.020678% | 1007776 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
Total | 35.593453% | 1431096 | 4020672
Total | 35.608774% | 1431712 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 35.593453% | 1431096 | 4020672
main.dol | 35.608774% | 1431712 | 4020672
RELs | 33.680860% | 3873408 | 11500324
Total | 34.176312% | 5304504 | 15520996
Total | 34.180281% | 5305120 | 15520996
## RELs

View File

@ -1,26 +0,0 @@
lbl_800474BC:
/* 800474BC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800474C0 7C 08 02 A6 */ mflr r0
/* 800474C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800474C8 7C 86 07 34 */ extsh r6, r4
/* 800474CC 2C 06 FF FF */ cmpwi r6, -1
/* 800474D0 40 82 00 0C */ bne lbl_800474DC
/* 800474D4 38 60 00 00 */ li r3, 0
/* 800474D8 48 00 00 2C */ b lbl_80047504
lbl_800474DC:
/* 800474DC 38 06 00 01 */ addi r0, r6, 1
/* 800474E0 30 00 FF FF */ addic r0, r0, -1
/* 800474E4 7C A0 01 10 */ subfe r5, r0, r0
/* 800474E8 7C C0 46 70 */ srawi r0, r6, 8
/* 800474EC 7C 05 28 78 */ andc r5, r0, r5
/* 800474F0 38 00 FF FF */ li r0, -1
/* 800474F4 41 82 00 08 */ beq lbl_800474FC
/* 800474F8 54 80 06 3E */ clrlwi r0, r4, 0x18
lbl_800474FC:
/* 800474FC 7C 04 03 78 */ mr r4, r0
/* 80047500 4B FF FF 55 */ bl getEventData__16dEvent_manager_cFsi
lbl_80047504:
/* 80047504 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80047508 7C 08 03 A6 */ mtlr r0
/* 8004750C 38 21 00 10 */ addi r1, r1, 0x10
/* 80047510 4E 80 00 20 */ blr

View File

@ -1,97 +0,0 @@
lbl_80192AA0:
/* 80192AA0 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 80192AA4 7C 08 02 A6 */ mflr r0
/* 80192AA8 90 01 00 84 */ stw r0, 0x84(r1)
/* 80192AAC 39 61 00 80 */ addi r11, r1, 0x80
/* 80192AB0 48 1C F7 11 */ bl _savegpr_22
/* 80192AB4 7C 78 1B 78 */ mr r24, r3
/* 80192AB8 7C 99 23 78 */ mr r25, r4
/* 80192ABC A0 84 00 02 */ lhz r4, 2(r4)
/* 80192AC0 54 80 04 3E */ clrlwi r0, r4, 0x10
/* 80192AC4 38 60 00 05 */ li r3, 5
/* 80192AC8 7F 80 1B D6 */ divw r28, r0, r3
/* 80192ACC 7C 04 1B D6 */ divw r0, r4, r3
/* 80192AD0 7C 00 19 D6 */ mullw r0, r0, r3
/* 80192AD4 7F 60 20 51 */ subf. r27, r0, r4
/* 80192AD8 41 82 00 08 */ beq lbl_80192AE0
/* 80192ADC 3B 9C 00 01 */ addi r28, r28, 1
lbl_80192AE0:
/* 80192AE0 3B 40 00 00 */ li r26, 0
/* 80192AE4 3A E0 00 00 */ li r23, 0
/* 80192AE8 3A C0 00 00 */ li r22, 0
/* 80192AEC 57 64 10 3A */ slwi r4, r27, 2
/* 80192AF0 3C 60 80 3C */ lis r3, amariheartTex@ha /* 0x803BB548@ha */
/* 80192AF4 38 03 B5 48 */ addi r0, r3, amariheartTex@l /* 0x803BB548@l */
/* 80192AF8 7C 60 22 14 */ add r3, r0, r4
/* 80192AFC 3B C3 FF FC */ addi r30, r3, -4
/* 80192B00 3C 60 80 3C */ lis r3, l_htag@ha /* 0x803BB4A8@ha */
/* 80192B04 3B E3 B4 A8 */ addi r31, r3, l_htag@l /* 0x803BB4A8@l */
/* 80192B08 3B A1 00 08 */ addi r29, r1, 8
lbl_80192B0C:
/* 80192B0C 80 78 00 0C */ lwz r3, 0xc(r24)
/* 80192B10 7C 9F B2 14 */ add r4, r31, r22
/* 80192B14 80 A4 00 00 */ lwz r5, 0(r4)
/* 80192B18 80 C4 00 04 */ lwz r6, 4(r4)
/* 80192B1C 81 83 00 00 */ lwz r12, 0(r3)
/* 80192B20 81 8C 00 3C */ lwz r12, 0x3c(r12)
/* 80192B24 7D 89 03 A6 */ mtctr r12
/* 80192B28 4E 80 04 21 */ bctrl
/* 80192B2C 7C 7D B9 2E */ stwx r3, r29, r23
/* 80192B30 A0 79 00 00 */ lhz r3, 0(r25)
/* 80192B34 38 00 00 05 */ li r0, 5
/* 80192B38 7C 03 03 D6 */ divw r0, r3, r0
/* 80192B3C 7C 1A 00 00 */ cmpw r26, r0
/* 80192B40 40 80 00 90 */ bge lbl_80192BD0
/* 80192B44 38 00 00 01 */ li r0, 1
/* 80192B48 7C 7D B8 2E */ lwzx r3, r29, r23
/* 80192B4C 98 03 00 B0 */ stb r0, 0xb0(r3)
/* 80192B50 7C 1A E0 00 */ cmpw r26, r28
/* 80192B54 40 80 00 58 */ bge lbl_80192BAC
/* 80192B58 2C 1B 00 00 */ cmpwi r27, 0
/* 80192B5C 41 82 00 2C */ beq lbl_80192B88
/* 80192B60 38 1C FF FF */ addi r0, r28, -1
/* 80192B64 7C 1A 00 00 */ cmpw r26, r0
/* 80192B68 40 82 00 20 */ bne lbl_80192B88
/* 80192B6C 80 9E 00 00 */ lwz r4, 0(r30)
/* 80192B70 38 A0 00 00 */ li r5, 0
/* 80192B74 81 83 00 00 */ lwz r12, 0(r3)
/* 80192B78 81 8C 01 14 */ lwz r12, 0x114(r12)
/* 80192B7C 7D 89 03 A6 */ mtctr r12
/* 80192B80 4E 80 04 21 */ bctrl
/* 80192B84 48 00 00 58 */ b lbl_80192BDC
lbl_80192B88:
/* 80192B88 3C 80 80 39 */ lis r4, d_file_d_file_sel_info__stringBase0@ha /* 0x803948B8@ha */
/* 80192B8C 38 84 48 B8 */ addi r4, r4, d_file_d_file_sel_info__stringBase0@l /* 0x803948B8@l */
/* 80192B90 38 84 00 21 */ addi r4, r4, 0x21
/* 80192B94 38 A0 00 00 */ li r5, 0
/* 80192B98 81 83 00 00 */ lwz r12, 0(r3)
/* 80192B9C 81 8C 01 14 */ lwz r12, 0x114(r12)
/* 80192BA0 7D 89 03 A6 */ mtctr r12
/* 80192BA4 4E 80 04 21 */ bctrl
/* 80192BA8 48 00 00 34 */ b lbl_80192BDC
lbl_80192BAC:
/* 80192BAC 3C 80 80 39 */ lis r4, d_file_d_file_sel_info__stringBase0@ha /* 0x803948B8@ha */
/* 80192BB0 38 84 48 B8 */ addi r4, r4, d_file_d_file_sel_info__stringBase0@l /* 0x803948B8@l */
/* 80192BB4 38 84 00 21 */ addi r4, r4, 0x21
/* 80192BB8 38 A0 00 00 */ li r5, 0
/* 80192BBC 81 83 00 00 */ lwz r12, 0(r3)
/* 80192BC0 81 8C 01 14 */ lwz r12, 0x114(r12)
/* 80192BC4 7D 89 03 A6 */ mtctr r12
/* 80192BC8 4E 80 04 21 */ bctrl
/* 80192BCC 48 00 00 10 */ b lbl_80192BDC
lbl_80192BD0:
/* 80192BD0 38 00 00 00 */ li r0, 0
/* 80192BD4 7C 7D B8 2E */ lwzx r3, r29, r23
/* 80192BD8 98 03 00 B0 */ stb r0, 0xb0(r3)
lbl_80192BDC:
/* 80192BDC 3B 5A 00 01 */ addi r26, r26, 1
/* 80192BE0 2C 1A 00 14 */ cmpwi r26, 0x14
/* 80192BE4 3A F7 00 04 */ addi r23, r23, 4
/* 80192BE8 3A D6 00 08 */ addi r22, r22, 8
/* 80192BEC 41 80 FF 20 */ blt lbl_80192B0C
/* 80192BF0 39 61 00 80 */ addi r11, r1, 0x80
/* 80192BF4 48 1C F6 19 */ bl _restgpr_22
/* 80192BF8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 80192BFC 7C 08 03 A6 */ mtlr r0
/* 80192C00 38 21 00 80 */ addi r1, r1, 0x80
/* 80192C04 4E 80 00 20 */ blr

View File

@ -1,45 +0,0 @@
lbl_80007D9C:
/* 80007D9C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80007DA0 7C 08 02 A6 */ mflr r0
/* 80007DA4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80007DA8 39 61 00 20 */ addi r11, r1, 0x20
/* 80007DAC 48 35 A4 29 */ bl _savegpr_27
/* 80007DB0 7C 7B 1B 78 */ mr r27, r3
/* 80007DB4 7C 9C 23 78 */ mr r28, r4
/* 80007DB8 7C BD 2B 78 */ mr r29, r5
/* 80007DBC 38 C0 00 00 */ li r6, 0
/* 80007DC0 38 E0 00 00 */ li r7, 0
/* 80007DC4 48 35 5E 59 */ bl GXGetTexBufferSize
/* 80007DC8 3B E3 00 20 */ addi r31, r3, 0x20
/* 80007DCC 7F E3 FB 78 */ mr r3, r31
/* 80007DD0 38 80 00 20 */ li r4, 0x20
/* 80007DD4 38 A0 00 00 */ li r5, 0
/* 80007DD8 48 2C 66 9D */ bl alloc__7JKRHeapFUliP7JKRHeap
/* 80007DDC 7C 60 1B 78 */ mr r0, r3
/* 80007DE0 7C 1E 03 79 */ or. r30, r0, r0
/* 80007DE4 40 82 00 0C */ bne lbl_80007DF0
/* 80007DE8 38 60 00 00 */ li r3, 0
/* 80007DEC 48 00 00 40 */ b lbl_80007E2C
lbl_80007DF0:
/* 80007DF0 38 80 00 00 */ li r4, 0
/* 80007DF4 7F E5 FB 78 */ mr r5, r31
/* 80007DF8 48 26 7B 65 */ bl cLib_memSet__FPviUl
/* 80007DFC 9B BE 00 00 */ stb r29, 0(r30)
/* 80007E00 38 00 00 00 */ li r0, 0
/* 80007E04 98 1E 00 01 */ stb r0, 1(r30)
/* 80007E08 B3 7E 00 02 */ sth r27, 2(r30)
/* 80007E0C B3 9E 00 04 */ sth r28, 4(r30)
/* 80007E10 38 00 00 01 */ li r0, 1
/* 80007E14 98 1E 00 14 */ stb r0, 0x14(r30)
/* 80007E18 98 1E 00 15 */ stb r0, 0x15(r30)
/* 80007E1C 98 1E 00 18 */ stb r0, 0x18(r30)
/* 80007E20 38 00 00 20 */ li r0, 0x20
/* 80007E24 90 1E 00 1C */ stw r0, 0x1c(r30)
/* 80007E28 7F C3 F3 78 */ mr r3, r30
lbl_80007E2C:
/* 80007E2C 39 61 00 20 */ addi r11, r1, 0x20
/* 80007E30 48 35 A3 F1 */ bl _restgpr_27
/* 80007E34 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80007E38 7C 08 03 A6 */ mtlr r0
/* 80007E3C 38 21 00 20 */ addi r1, r1, 0x20
/* 80007E40 4E 80 00 20 */ blr

View File

@ -81,7 +81,7 @@ public:
bool dataLoaded() { return mDataLoaded; }
int flagCheck(int flag) { return mFlags.flagCheck(flag); }
static int getIndexCompositId(s16 param_0) { return param_0 != -1 ? (u8)param_0 : -1; }
inline static s16 getIndexCompositId(s16 param_0) { return param_0 != -1 ? (s16)(param_0 & 0xff) : (s16)-1; }
static int getTypeCompositId(s16 param_0) { return param_0 == -1 ? 0 : param_0 >> 8; }
static s16 makeCompositId(s16 a, int b) { return a | (b << 8); }

View File

@ -567,5 +567,11 @@ void dKy_plight_priority_set(LIGHT_INFLUENCE* param_0);
void dKy_tevstr_init(dKy_tevstr_c* param_0, s8 param_1, u8 param_2);
SND_INFLUENCE* dKy_Sound_get();
void dKy_plight_cut(LIGHT_INFLUENCE* param_0);
int dKy_rain_check();
void dKy_set_actcol_ratio(f32 ratio);
void dKy_set_bgcol_ratio(f32 ratio);
void dKy_set_fogcol_ratio(f32 ratio);
void dKy_set_vrboxcol_ratio(f32 ratio);
f32 dKy_get_parcent(f32 param_0, f32 param_1, f32 param_2);
#endif /* D_KANKYO_D_KANKYO_H */

View File

@ -42,11 +42,7 @@ public:
/* 0x38 */ u8* mpResMoon_A_A01;
/* 0x3C */ u8* mpResMoon_A_A02;
/* 0x40 */ u8* mpResMoon_A_A03;
/* 0x44 */ int field_0x44;
/* 0x48 */ int field_0x48;
/* 0x4C */ int field_0x4c;
/* 0x50 */ int field_0x50;
/* 0x54 */ int field_0x54;
/* 0x44 */ u32 field_0x44[5];
/* 0x58 */ int field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ f32 field_0x60;
@ -54,7 +50,7 @@ public:
/* 0x68 */ f32 field_0x68;
/* 0x6C */ f32 field_0x6c;
/* 0x70 */ GXColor mColor;
/* 0x74 */ u8 field_0x74[4];
/* 0x74 */ GXColor field_0x74;
}; // Size: 0x78
class dKankyo_sunlenz_Packet : public J3DPacket {
@ -68,10 +64,11 @@ public:
/* 0x1C */ u8* mpResRing_A;
/* 0x20 */ u8* mpResLenz;
/* 0x24 */ cXyz mPositions[8];
/* 0x84 */ u8 field_0x84[8];
/* 0x84 */ f32 field_0x84;
/* 0x88 */ f32 field_0x88;
/* 0x8C */ f32 field_0x8c;
/* 0x90 */ f32 field_0x90;
/* 0x94 */ u8 field_0x94[4];
/* 0x94 */ f32 field_0x94;
/* 0x98 */ f32 field_0x98;
/* 0x9C */ u8 field_0x9c[2];
/* 0x9E */ bool mDrawLenzInSky;

View File

@ -35,6 +35,10 @@ inline void cMtx_concat(const Mtx a, const Mtx b, Mtx ab) {
PSMTXConcat(a, b, ab);
}
inline void cMtx_scale(Mtx m, f32 x, f32 y, f32 z) {
PSMTXScale(m, x, y, z);
}
inline void mDoMtx_multVec(Mtx m, const Vec* src, Vec* dst) {
PSMTXMultVec(m, src, dst);
}

View File

@ -306,10 +306,10 @@ static int dEvDt_Next_Stage(int index, int wipe_type) {
point = stgInfo->mStart;
roomNo = (s8)stgInfo->mRoom;
layer = dStage_sclsInfo_getSceneLayer(stgInfo);
wipe = (s8)dStage_sclsInfo_getWipe(stgInfo);
wipe = (s8)stgInfo->mWipe;
wipe_time = dStage_sclsInfo_getWipeTime(stgInfo);
if (wipe == 15) {
if (stgInfo->mWipe == 15) {
wipe = 0;
}
@ -1237,6 +1237,7 @@ SECTION_DEAD static char const* const stringBase_80379F18 = "OffsetAngY";
SECTION_SDATA2 static f32 lit_5057 = 10.0f;
/* 80045878-80045AFC 0401B8 0284+00 1/1 0/0 0/0 .text specialProcPackage__12dEvDtStaff_cFv */
// Matches without literals
#ifdef NONMATCHING
void dEvDtStaff_c::specialProcPackage() {
dMsgObject_c* msgObj = dComIfGp_getMsgObjectClass();
@ -1267,9 +1268,10 @@ void dEvDtStaff_c::specialProcPackage() {
}
// should not save event from g_dComIfG_gameInfo to register
u8* demoData = (u8*)i_dComIfGp_getEvent().getStbDemoData(fileName);
dComIfG_play_c& info = g_dComIfG_gameInfo.play;
u8* demoData = (u8*)info.getEvent().getStbDemoData(fileName);
dDemo_c::start(demoData, offsetPos, offsetAngY);
dComIfGp_event_setCullRate(10.0f);
info.getEvent().setCullRate(10.0f);
int* eventFlagP = dComIfGp_evmng_getMyIntegerP(staffId, "EventFlag");
if (eventFlagP != NULL) {

View File

@ -11,7 +11,6 @@
#include "d/com/d_com_inf_game.h"
#include "d/d_camera.h"
#include "d/d_stage.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "global.h"
@ -21,123 +20,10 @@
// Forward References:
//
extern "C" void init__18dEvent_exception_cFv();
extern "C" void setStartDemo__18dEvent_exception_cFi();
extern "C" void getEventName__18dEvent_exception_cFv();
extern "C" void getSubstance__16dEvent_manager_cFP11dEvDtData_ci();
extern "C" void __ct__16dEvent_manager_cFv();
extern "C" void __ct__11dEvDtBase_cFv();
extern "C" void create__16dEvent_manager_cFv();
extern "C" void setObjectArchive__16dEvent_manager_cFPc();
extern "C" void demoInit__16dEvent_manager_cFv();
extern "C" void roomInit__16dEvent_manager_cFi();
extern "C" void roomFinish__16dEvent_manager_cFi();
extern "C" void orderStartDemo__16dEvent_manager_cFv();
extern "C" void remove__16dEvent_manager_cFv();
extern "C" static void extraOnObjectCallBack__FP10fopAc_ac_cPv();
extern "C" static void extraOffObjectCallBack__FP10fopAc_ac_cPv();
extern "C" static void allOffObjectCallBack__FP10fopAc_ac_cPv();
extern "C" void startProc__16dEvent_manager_cFP12dEvDtEvent_c();
extern "C" void closeProc__16dEvent_manager_cFP12dEvDtEvent_c();
extern "C" void endProc__16dEvent_manager_cFsi();
extern "C" void Sequencer__16dEvent_manager_cFv();
extern "C" void Experts__16dEvent_manager_cFv();
extern "C" void getEventData__16dEvent_manager_cFsi();
extern "C" void getEventData__16dEvent_manager_cFs();
extern "C" void getEventIdx__16dEvent_manager_cFPCcUcl();
extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc();
extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc();
extern "C" void isMapToolCamera__16dEvent_manager_cFUcl();
extern "C" void order__16dEvent_manager_cFs();
extern "C" void startCheck__16dEvent_manager_cFs();
extern "C" void startCheckOld__16dEvent_manager_cFPCc();
extern "C" void endCheck__16dEvent_manager_cFs();
extern "C" void endCheckOld__16dEvent_manager_cFPCc();
extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci();
extern "C" void getIsAddvance__16dEvent_manager_cFi();
extern "C" static void dEvmng_strcmp__FPCcPc();
extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii();
extern "C" void getMyNowCutName__16dEvent_manager_cFi();
extern "C" void getMyDataP__16dEvent_manager_cFiPCci();
extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci();
extern "C" void getMySubstanceNum__16dEvent_manager_cFiPCc();
extern "C" void cutEnd__16dEvent_manager_cFi();
extern "C" void getEventPrio__16dEvent_manager_cFP10fopAc_ac_cs();
extern "C" void issueStaff__16dEvent_manager_cFPCc();
extern "C" void cancelStaff__16dEvent_manager_cFPCc();
extern "C" void setGoal__16dEvent_manager_cFP4cXyz();
extern "C" void getGoal__16dEvent_manager_cFv();
extern "C" void getRunEventName__16dEvent_manager_cFv();
extern "C" static void findShutterCallBack__FP10fopAc_ac_cPv();
extern "C" void specialCast_Shutter__16dEvent_manager_cFsi();
extern "C" void specialCast__16dEvent_manager_cFPCci();
extern "C" static void dEv_talkman_get_action__Fi();
extern "C" void ChkPresentEnd__16dEvent_manager_cFv();
extern "C" void checkStartDemo__16dEvent_manager_cFv();
extern "C" extern char const* const d_event_d_event_manager__stringBase0;
//
// External References:
//
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
extern "C" void fopAcM_orderMapToolAutoNextEvent__FP10fopAc_ac_cUcsUsUsUs();
extern "C" void fopAcM_searchFromName4Event__FPCcs();
extern "C" void getStatusRoomDt__20dStage_roomControl_cFi();
extern "C" void dComIfG_getStageRes__FPCc();
extern "C" void dComIfG_getRoomArcName__Fi();
extern "C" void dComIfGp_SelectWarpPt_get__Fv();
extern "C" void __dt__11dEvDtBase_cFv();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void dEv_defaultSkipProc__FPvi();
extern "C" void dEv_defaultSkipZev__FPvi();
extern "C" void dEv_defaultSkipStb__FPvi();
extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii();
extern "C" void onSkipFade__14dEvt_control_cFv();
extern "C" void getStageEventDt__14dEvt_control_cFv();
extern "C" void sceneChange__14dEvt_control_cFi();
extern "C" void convPId__14dEvt_control_cFUi();
extern "C" void searchMapEventData__14dEvt_control_cFUcl();
extern "C" void runningEventID__14dEvt_control_cFs();
extern "C" void setPt2__14dEvt_control_cFPv();
extern "C" void setPtI__14dEvt_control_cFPv();
extern "C" void setPtD__14dEvt_control_cFPv();
extern "C" void flagSet__11dEvDtFlag_cFi();
extern "C" void init__11dEvDtFlag_cFv();
extern "C" void finishCheck__12dEvDtEvent_cFv();
extern "C" void specialStaffProc__12dEvDtEvent_cFP12dEvDtStaff_c();
extern "C" void init__12dEvDtStaff_cFv();
extern "C" void init__11dEvDtBase_cFv();
extern "C" void init__11dEvDtBase_cFPci();
extern "C" void advanceCut__11dEvDtBase_cFP12dEvDtEvent_c();
extern "C" void EventRecoverNotime__9dCamera_cFv();
extern "C" void dCam_getBody__Fv();
extern "C" void Center__9dCamera_cFv();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void setDemoName__11Z2StatusMgrFPc();
extern "C" void __construct_array();
extern "C" void _savegpr_20();
extern "C" void _savegpr_22();
extern "C" void _savegpr_24();
extern "C" void _savegpr_25();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_20();
extern "C" void _restgpr_22();
extern "C" void _restgpr_24();
extern "C" void _restgpr_25();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
BOOL daPy_py_c::checkNowWolf() {
return dComIfGp_getLinkPlayer()->i_checkWolf();
}
@ -629,26 +515,14 @@ dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0, int idx) {
/* 800474BC-80047514 041DFC 0058+00 9/9 3/3 4/4 .text getEventData__16dEvent_manager_cFs
*/
#ifdef NONMATCHING
dEvDtEvent_c* dEvent_manager_c::getEventData(s16 eventCompositId) {
if (eventCompositId == -1) {
return NULL;
} else {
// extsh instead of mr here
return getEventData(getIndexCompositId(eventCompositId),
getTypeCompositId(eventCompositId));
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dEvDtEvent_c* dEvent_manager_c::getEventData(s16 eventCompositId) {
nofralloc
#include "asm/d/event/d_event_manager/getEventData__16dEvent_manager_cFs.s"
}
#pragma pop
#endif
/* 80047514-80047698 041E54 0184+00 3/3 8/8 3/3 .text getEventIdx__16dEvent_manager_cFPCcUcl */
s16 dEvent_manager_c::getEventIdx(char const* eventName, u8 mapToolID, s32 roomNo) {

View File

@ -261,11 +261,9 @@ int dFile_info_c::setSaveData(dSv_save_c* save, int checksumValid, u8 data_num)
}
/* 80192AA0-80192C08 18D3E0 0168+00 1/1 0/0 0/0 .text setHeartCnt__12dFile_info_cFP10dSv_save_c */
// close
#ifdef NONMATCHING
void dFile_info_c::setHeartCnt(dSv_save_c* save) {
u16 life = save->getPlayer().getPlayerStatusA().getLife();
s32 count = (u8)(life) / 5;
s32 count = (life & 0xffff) / 5;
s32 quarter_count = life % 5;
if (quarter_count != 0) {
count++;
@ -278,7 +276,7 @@ void dFile_info_c::setHeartCnt(dSv_save_c* save) {
if (i < save->getPlayer().getPlayerStatusA().getMaxLife() / 5) {
heartP[i]->show();
if (i < count) {
if (quarter_count != 0 && i == --count) {
if (quarter_count != 0 && i == count - 1) {
heartP[i]->changeTexture(amariheartTex[quarter_count - 1], 0);
} else {
heartP[i]->changeTexture("tt_heart_00.bti", 0);
@ -291,16 +289,6 @@ void dFile_info_c::setHeartCnt(dSv_save_c* save) {
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFile_info_c::setHeartCnt(dSv_save_c* param_0) {
nofralloc
#include "asm/d/file/d_file_sel_info/setHeartCnt__12dFile_info_cFP10dSv_save_c.s"
}
#pragma pop
#endif
/* 80192C08-80192C70 18D548 0068+00 1/1 0/0 0/0 .text setSaveDate__12dFile_info_cFP10dSv_save_c */
void dFile_info_c::setSaveDate(dSv_save_c* save) {
@ -352,14 +340,16 @@ SECTION_SDATA2 static u8 lit_4001[4] = {
};
/* 80192D9C-80192E88 18D6DC 00EC+00 1/0 0/0 0/0 .text draw__16dDlst_FileInfo_cFv */
// close
// vtable order issue
#ifdef NONMATCHING
void dDlst_FileInfo_c::draw() {
Mtx m;
J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort();
if (mBasePane != NULL) {
MtxP glbMtx = mBasePane->getGlbMtx();
MtxP glbMtx2 = mBasePane->getGlbMtx();
// Fake match
MtxP glbMtx = (MtxP)&glbMtx2[0][0];
PSMTXScale(m, mBasePane->getWidth() / field_0x10->getWidth(),
mBasePane->getHeight() / field_0x10->getHeight(), 1.0f);
PSMTXConcat(glbMtx, m, glbMtx);

View File

@ -23,20 +23,6 @@ struct dKyd_l_vr_box_data_struct {
// Forward References:
//
extern "C" void dKyd_dmpalet_getp__Fv();
extern "C" void dKyd_dmpselect_getp__Fv();
extern "C" void dKyd_dmenvr_getp__Fv();
extern "C" void dKyd_dmvrbox_getp__Fv();
extern "C" void dKyd_schejule_getp__Fv();
extern "C" void dKyd_schejule_boss_getp__Fv();
extern "C" void dKyd_xfog_table_set__FUc();
extern "C" void dKyd_maple_col_getp__Fv();
extern "C" void dKyd_darkworld_tbl_getp__Fv();
extern "C" void dKyd_light_size_tbl_getp__Fv();
extern "C" void dKyd_light_tw_size_tbl_getp__Fv();
extern "C" void dKyd_BloomInf_tbl_getp__Fi();
extern "C" extern char const* const d_kankyo_d_kankyo_data__stringBase0;
//
// Declarations:
//

View File

@ -12,6 +12,9 @@
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "m_Do/m_Do_lib.h"
#include "SSystem/SComponent/c_math.h"
#include "JSystem/JKernel/JKRHeap.h"
//
// Forward References:
@ -303,7 +306,7 @@ static asm void dKy_set_eyevect_calc2(camera_class* param_0, Vec* param_1, f32 p
SECTION_SDATA2 static f32 lit_3992 = 0.125f;
/* 804521C4-804521C8 0007C4 0004+00 9/9 0/0 0/0 .sdata2 @3993 */
SECTION_SDATA2 static f32 lit_3993 = 1.0f / 100.0f;
SECTION_SDATA2 static f32 lit_3993 = 0.01f;
/* 804521C8-804521D0 0007C8 0008+00 15/15 0/0 0/0 .sdata2 @3995 */
SECTION_SDATA2 static f64 lit_3995 = 4503601774854144.0 /* cast s32 to float */;
@ -342,7 +345,7 @@ static void dKyr_set_btitex(GXTexObj* i_obj, ResTIMG* i_img) {
/* ############################################################################################## */
/* 804521D0-804521D4 0007D0 0004+00 4/4 0/0 0/0 .sdata2 @4103 */
SECTION_SDATA2 static f32 lit_4103 = 9.999999747378752e-05f;
SECTION_SDATA2 static f32 lit_4103 = 0.0001;
/* 804521D4-804521D8 0007D4 0004+00 4/4 0/0 0/0 .sdata2 @4104 */
SECTION_SDATA2 static f32 lit_4104 = 4000.0f;
@ -378,6 +381,54 @@ SECTION_SDATA2 static f32 lit_4113 = 110.0f;
SECTION_SDATA2 static f32 lit_4114 = 4100.0f;
/* 8005BA48-8005BED8 056388 0490+00 0/0 1/1 0/0 .text dKyr_lenzflare_move__Fv */
// Matches with literals
#ifdef NONMATCHING
void dKyr_lenzflare_move() {
dKankyo_sun_Packet* sunPacket = g_env_light.mpSunPacket;
dKankyo_sunlenz_Packet* sunLenzPacket = g_env_light.mpSunLenzPacket;
camera_class* iVar6 = dComIfGp_getCamera(0);
cXyz cStack_48;
cXyz cStack_54;
cXyz local_60;
cXyz cStack_6c;
if (sunPacket->field_0x5c < 0.0001) {
return;
}
dKy_set_eyevect_calc(iVar6, &cStack_48, 4000.0f, 4000.0f);
dKyr_get_vectle_calc(&cStack_48, sunPacket->mPos, &local_60);
sunLenzPacket->mPositions[0] = sunPacket->mPos[0];
sunLenzPacket->mPositions[1] = sunPacket->mPos[0];
cXyz local_78;
cXyz cStack_84;
cXyz local_90;
mDoLib_project(sunLenzPacket->mPositions, &cStack_84);
local_90.x = 304.0f;
local_90.y = 224.0f;
local_90.z = 0.0054931640625f; // Maybe 45 / 8192
dKyr_get_vectle_calc(&local_90, &cStack_84, &local_78);
sunLenzPacket->field_0x94 = cM_atan2s(local_78.x, local_78.y);
sunLenzPacket->field_0x94 *= 0.0054931640625f;
sunLenzPacket->field_0x94 += 180.0f;
dKyr_get_vectle_calc(&iVar6->mLookat.mEye, &iVar6->mLookat.mCenter, &cStack_6c);
for (int i = 2; i < 8; i++) {
if (i == 2) {
f32 fVar3 = local_60.abs(cStack_6c);
f32 fVar4 = 250.0f + 600.0f * fVar3;
sunLenzPacket->mPositions[i].x = sunPacket->mPos[0].x - local_60.x * fVar4 * i;
sunLenzPacket->mPositions[i].y = sunPacket->mPos[0].y - local_60.y * fVar4 * i;
sunLenzPacket->mPositions[i].z = sunPacket->mPos[0].z - local_60.z * fVar4 * i;
} else {
f32 fVar3 = local_60.abs(cStack_6c);
f32 fVar4 = 250.0f + 110.0f * fVar3;
sunLenzPacket->mPositions[i].x = sunPacket->mPos[0].x - (4100.0f * local_60.x + local_60.x * fVar4 * i);
sunLenzPacket->mPositions[i].y = sunPacket->mPos[0].y - (4100.0f * local_60.y + local_60.y * fVar4 * i);
sunLenzPacket->mPositions[i].z = sunPacket->mPos[0].z - (4100.0f * local_60.z + local_60.z * fVar4 * i);
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -386,20 +437,26 @@ asm void dKyr_lenzflare_move() {
#include "asm/d/kankyo/d_kankyo_rain/dKyr_lenzflare_move__Fv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80452208-8045220C 000808 0004+00 3/3 0/0 0/0 .sdata2 @4126 */
SECTION_SDATA2 static f32 lit_4126 = 285.0f;
/* 8005BED8-8005BF08 056818 0030+00 1/1 0/0 0/0 .text dKyr_moon_arrival_check__Fv */
static bool dKyr_moon_arrival_check() {
return g_env_light.mDaytime > lit_4126 || g_env_light.mDaytime < 67.5f;
static int dKyr_moon_arrival_check() {
int rv = 0;
if (g_env_light.mDaytime > lit_4126 || g_env_light.mDaytime < 67.5f) {
rv = 1;
}
return rv;
}
/* ############################################################################################## */
/* 8037A4C0-8037A4E8 006B20 0028+00 1/1 0/0 0/0 .rodata sun_chkpnt$4155 */
SECTION_RODATA static f32 const sun_chkpnt[10] = {
0.0f, 0.0f, -10.0f, -20.0f, 10.0f, 20.0f, -20.0f, 10.0f, 20.0f, -10.0f,
SECTION_RODATA static f32 const sun_chkpnt[5][2] = {
{0.0f, 0.0f}, {-10.0f, -20.0f}, {10.0f, 20.0f}, {-20.0f, 10.0f}, {20.0f, -10.0f},
};
COMPILER_STRIP_GATE(0x8037A4C0, &sun_chkpnt);
@ -430,7 +487,7 @@ static f32 S_parcent_bak;
/* 80450EEC-80450EF0 -00001 0004+00 2/2 0/0 0/0 .sbss None */
/* 80450EEC 0002+00 data_80450EEC None */
/* 80450EEE 0002+00 data_80450EEE S_rot_work1$7554 */
static u8 struct_80450EEC[4];
static s8 struct_80450EEC[4];
/* 80452210-80452214 000810 0004+00 4/4 0/0 0/0 .sdata2 @4353 */
SECTION_SDATA2 static f32 lit_4353 = 8000.0f;
@ -442,13 +499,13 @@ SECTION_SDATA2 static f32 lit_4354 = 1.0f;
SECTION_SDATA2 static f32 lit_4355 = 77.5f;
/* 8045221C-80452220 00081C 0004+00 5/5 0/0 0/0 .sdata2 @4356 */
SECTION_SDATA2 static f32 lit_4356 = 1.0f / 20.0f;
SECTION_SDATA2 static f32 lit_4356 = 0.05f;
/* 80452220-80452224 000820 0004+00 14/14 0/0 0/0 .sdata2 @4357 */
SECTION_SDATA2 static f32 lit_4357 = 1.0f / 10.0f;
SECTION_SDATA2 static f32 lit_4357 = 0.1f;
/* 80452224-80452228 000824 0004+00 2/2 0/0 0/0 .sdata2 @4358 */
SECTION_SDATA2 static f32 lit_4358 = 9.999999747378752e-06f;
SECTION_SDATA2 static f32 lit_4358 = 0.00001f;
/* 80452228-8045222C 000828 0004+00 2/2 0/0 0/0 .sdata2 @4359 */
SECTION_SDATA2 static f32 lit_4359 = 458.0f;
@ -463,19 +520,19 @@ SECTION_SDATA2 static f32 lit_4361 = 1000000000.0f;
SECTION_SDATA2 static f32 lit_4362 = 450.0f;
/* 80452238-8045223C 000838 0004+00 10/10 0/0 0/0 .sdata2 @4363 */
SECTION_SDATA2 static f32 lit_4363 = 0.0010000000474974513f;
SECTION_SDATA2 static f32 lit_4363 = 0.001f;
/* 8045223C-80452240 00083C 0004+00 18/18 0/0 0/0 .sdata2 @4364 */
SECTION_SDATA2 static f32 lit_4364 = 0.5f;
/* 80452240-80452244 000840 0004+00 13/13 0/0 0/0 .sdata2 @4365 */
SECTION_SDATA2 static f32 lit_4365 = 1.0f / 5.0f;
SECTION_SDATA2 static f32 lit_4365 = 0.2f;
/* 80452244-80452248 000844 0004+00 11/11 0/0 0/0 .sdata2 @4366 */
SECTION_SDATA2 static f32 lit_4366 = 3.0f / 10.0f;
SECTION_SDATA2 static f32 lit_4366 = 0.3f;
/* 80452248-8045224C 000848 0004+00 8/8 0/0 0/0 .sdata2 @4367 */
SECTION_SDATA2 static f32 lit_4367 = 4.0f / 5.0f;
SECTION_SDATA2 static f32 lit_4367 = 0.8f;
/* 8045224C-80452250 00084C 0004+00 12/12 0/0 0/0 .sdata2 @4368 */
SECTION_SDATA2 static f32 lit_4368 = 255.0f;
@ -508,6 +565,242 @@ SECTION_SDATA2 static f32 lit_4376 = 21678.0f;
SECTION_SDATA2 static f64 lit_4379 = 4503599627370496.0 /* cast u32 to float */;
/* 8005BF08-8005CC5C 056848 0D54+00 0/0 1/1 0/0 .text dKyr_sun_move__Fv */
// regalloc
#ifdef NONMATCHING
void dKyr_sun_move() {
dKankyo_sun_Packet* sunPacket = g_env_light.mpSunPacket;
dKankyo_sunlenz_Packet* sunLenzPacket = g_env_light.mpSunLenzPacket;
cXyz local_90;
cXyz cStack_9c;
f32 dVar20;
camera_class* pCamera = dComIfGp_getCamera(0);
f32 dVar19 = 0.0f;
if (struct_80450EEC[0] == 0) {
S_parcent_bak = dVar19;
struct_80450EEC[0] = 1;
}
u8 r22 = 0;
u8 r21 = 0;
s32 r20 = 0;
u32 stType = dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo());
if ((g_env_light.mBaseLightInfluence.mColor.r == 0) && (stType != 2)) {
dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mBaseLightInfluence.mPosition, &local_90);
} else {
dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mSunPos2, &local_90);
}
sunPacket->mPos[0].x = pCamera->mLookat.mEye.x + 8000.0f * local_90.x;
sunPacket->mPos[0].y = pCamera->mLookat.mEye.y + 8000.0f * local_90.y;
sunPacket->mPos[0].z = pCamera->mLookat.mEye.z + 8000.0f * local_90.z;
f32 fVar4 = (sunPacket->mPos[0].y - pCamera->mLookat.mEye.y) / 8000.0f;
if (fVar4 < 0.0f) {
fVar4 = 0.0f;
}
if (fVar4 >= 1.0f) {
fVar4 = 1.0f;
}
fVar4 = 1.0f - fVar4;
fVar4 *= fVar4;
dVar20 = 1.0f - fVar4;
if (i_dComIfGp_getStage()->getStagInfo() != 0) {
dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo());
}
if (sunPacket->field_0x28) {
sunPacket->field_0x28--;
}
sunPacket->field_0x29 = 0;
if (g_env_light.mDaytime > 77.5f && g_env_light.mDaytime < 285.0f && dKy_rain_check() < 0x14 &&
strcmp(dComIfGp_getStartStageName(), "F_SP200") != 0 &&
strcmp(dComIfGp_getStartStageName(), "D_MN09B") != 0) {
f32 local_f8 = 0.0f;
cLib_addCalc(
&sunPacket->field_0x60,
1.0f,
1.0f / 20.0f,
1.0f / 10.0f,
0.00001f);
if (pCamera != 0) {
local_f8 = pCamera->mCamera.TrimHeight();
}
cXyz cStack_a8;
mDoLib_project(sunPacket->mPos, &cStack_a8);
for (int i = 0; i < 5; i++) {
cXyz local_b4 = cStack_a8;
local_b4.x -= sun_chkpnt[i][0];
local_b4.y -= sun_chkpnt[i][1];
if (local_b4.x > 0.0f &&
local_b4.x < 608.0f &&
local_b4.y > local_f8 &&
local_b4.y < 458.0f - local_f8)
{
if ((sunPacket->field_0x44)[i] >= 0x00FFFFFF){
r22++;
if (i == 0) {
r21++;
}
}
dComIfGd_peekZ(local_b4.x, local_b4.y, sunPacket->field_0x44 + i);
} else {
sunPacket->field_0x44[i] = 0;
r20++;
}
}
if (r20 != 0 && r22 != 0 && r21 != 0) {
r21 = 1;
r22 = 5;
}
if (r22 != 0) {
if (sunPacket->field_0x28 < 5) {
sunPacket->field_0x28 += 2;
}
sunPacket->field_0x29 = 1;
}
sunLenzPacket->field_0x84 = sunLenzPacket->field_0x8c;
sunLenzPacket->field_0x88 = sunLenzPacket->field_0x90;
sunLenzPacket->field_0x8c = 1000000000.0f;
sunLenzPacket->field_0x90 = 0.0f;
cXyz local_cc;
local_cc.x = 304.0f;
local_cc.y = 224.0f;
local_cc.z = 0.0f;
sunLenzPacket->field_0x98 = local_cc.abs(cStack_a8);
sunLenzPacket->field_0x98 /= 450.0f;
if (sunLenzPacket->field_0x98 > 1.0f) {
sunLenzPacket->field_0x98 = 1.0f;
}
sunLenzPacket->field_0x98 = 1.0f - sunLenzPacket->field_0x98;
dVar19 = sunLenzPacket->field_0x98 * sunLenzPacket->field_0x98;
sunLenzPacket->field_0x98 = 1.0f - dVar19;
} else {
cLib_addCalc(&sunPacket->field_0x60, 0.0f, 0.1f, 0.05f, 0.001f);
r22 = 0;
sunPacket->field_0x28 = 0;
sunPacket->field_0x29 = 0;
}
if (g_env_light.mColpatWeather != 0 || g_env_light.mSnowCount > 10) {
r21 = 0;
r22 = 0;
}
if (stType == 2) {
r21 = 0;
r22 = 0;
}
if (r21 != 0) {
if (r22 == 4) {
cLib_addCalc(&sunPacket->field_0x5c, 1.0f, 0.5f, 0.5f, 0.01f);
} else {
cLib_addCalc(&sunPacket->field_0x5c, 1.0f, 0.2f, 0.3f, 0.001f);
}
} else {
if (r22 < 1) {
cLib_addCalc(&sunPacket->field_0x5c, 0.0f, 0.5f, 0.5f, 0.001f);
} else {
cLib_addCalc(&sunPacket->field_0x5c, 0.0f, 0.2f, 0.3f, 0.001f);
}
}
if (sunPacket->field_0x5c <= 0.0f) {
g_env_light.mpSunLenzPacket->mDrawLenzInSky = 1;
} else {
g_env_light.mpSunLenzPacket->mDrawLenzInSky = 0;
}
if (local_90.y > 0.0f && g_env_light.mpSunLenzPacket->mDrawLenzInSky == 0) {
if (dStage_stagInfo_GetArg0(i_dComIfGp_getStage()->getStagInfo()) != 0) {
f32 dVar3;
if (S_parcent_bak < dVar19) {
dVar3 = dVar19 - S_parcent_bak;
} else {
dVar3 = S_parcent_bak - dVar19;;
}
if (dVar3 < 0.3f) {
dKy_set_actcol_ratio(1.0f - dVar19 * sunPacket->field_0x5c);
dKy_set_bgcol_ratio(1.0f - dVar19 * sunPacket->field_0x5c);
dKy_set_fogcol_ratio(1.0f - dVar20 * (dVar19 * sunPacket->field_0x5c));
dKy_set_vrboxcol_ratio(1.0f - 0.8f * (dVar20 * (dVar19 * sunPacket->field_0x5c)));
}
S_parcent_bak = dVar19;
}
}
if (g_env_light.mDaytime < 255.0f && g_env_light.mColpatWeather == 0) {
cLib_addCalc(&sunPacket->field_0x6c, 1.0f, 0.1f, 0.01f, 0.0001f);
} else {
cLib_addCalc(&sunPacket->field_0x6c, 0.0f, 0.5f, 0.1f, 0.001f);
}
if (g_env_light.mDaytime < 180.0f) {
f32 fVar7;
if (g_env_light.mDaytime < 90.0f) {
fVar7 = 0.0f;
} else if (g_env_light.mDaytime < 105.0f) {
fVar7 = dKy_get_parcent(105.0f, 90.0f, g_env_light.mDaytime);
} else {
fVar7 = 1.0f;
}
sunPacket->mColor.r = (f32)sun_color[0].r + fVar7 * ((f32)sun_color[1].r - (f32)sun_color[0].r);
sunPacket->mColor.g = (f32)sun_color[0].g + fVar7 * ((f32)sun_color[1].g - (f32)sun_color[0].g);
sunPacket->mColor.b = (f32)sun_color[0].b + fVar7 * ((f32)sun_color[1].b - (f32)sun_color[0].b);
sunPacket->field_0x74.r = (f32)sun_color2[0].r + fVar7 * ((f32)sun_color2[1].r - (f32)sun_color2[0].r);
sunPacket->field_0x74.g = (f32)sun_color2[0].g + fVar7 * ((f32)sun_color2[1].g - (f32)sun_color2[0].g);
sunPacket->field_0x74.b = (f32)sun_color2[0].b + fVar7 * ((f32)sun_color2[1].b - (f32)sun_color2[0].b);
} else {
f32 fVar7;
if (g_env_light.mDaytime < 247.5f) {
fVar7 = 1.0f;
} else if (g_env_light.mDaytime < 270.0f) {
fVar7 = 1.0f - dKy_get_parcent(270.0f, 247.5f, g_env_light.mDaytime);
} else {
fVar7 = 0.0f;
}
sunPacket->mColor.r = (f32)sun_color[2].r + fVar7 * ((f32)sun_color[1].r - (f32)sun_color[2].r);
sunPacket->mColor.g = (f32)sun_color[2].g + fVar7 * ((f32)sun_color[1].g - (f32)sun_color[2].g);
sunPacket->mColor.b = (f32)sun_color[2].b + fVar7 * ((f32)sun_color[1].b - (f32)sun_color[2].b);
sunPacket->field_0x74.r = (f32)sun_color2[2].r + fVar7 * ((f32)sun_color2[1].r - (f32)sun_color2[2].r);
sunPacket->field_0x74.g = (f32)sun_color2[2].g + fVar7 * ((f32)sun_color2[1].g - (f32)sun_color2[2].g);
sunPacket->field_0x74.b = (f32)sun_color2[2].b + fVar7 * ((f32)sun_color2[1].b - (f32)sun_color2[2].b);
}
if (dKyr_moon_arrival_check()) {
f32 fVar6 = (sunPacket->mPos[0].y - pCamera->mLookat.mEye.y) / -8000.0f;
fVar6 *= fVar6;
fVar6 *= 6.0f;
if (fVar6 > 1.0f) {
fVar6 = 1.0f;
}
cLib_addCalc(&sunPacket->field_0x68, fVar6, 0.2f, 0.01f, 0.001f);
} else {
cLib_addCalc(&sunPacket->field_0x68, 0.0f, 0.2f, 0.01f, 0.001f);
}
if (g_env_light.mCameraInWater == 0 && g_env_light.mDaytime > 255.0f && sunPacket->field_0x60 >= 0.2f) {
cXyz local_d8;
dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mSunPos2, &local_90);
local_d8.x = pCamera->mLookat.mEye.x + 30160.0f * local_90.x;
local_d8.y = pCamera->mLookat.mEye.y + 30160.0f * local_90.y;
local_d8.z = pCamera->mLookat.mEye.z + 30160.0f * local_90.z;
local_d8.y -= 21678.0f;
sunPacket->field_0x58 = dComIfGp_particle_set(sunPacket->field_0x58, 0x11c, &local_d8, 0, 0);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -516,6 +809,7 @@ asm void dKyr_sun_move() {
#include "asm/d/kankyo/d_kankyo_rain/dKyr_sun_move__Fv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@ -525,6 +819,31 @@ SECTION_DEAD static char const* const stringBase_8037A588 = "Always";
#pragma pop
/* 8005CC5C-8005CDA8 05759C 014C+00 0/0 1/1 0/0 .text dKyr_rain_init__Fv */
// Matches with literals
#ifdef NONMATCHING
void dKyr_rain_init() {
camera_class* pCamera = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera;
g_env_light.mpRainPacket->mpTex = (u8*)dComIfG_getObjectRes("Always", 0x4a);
g_env_light.mpRainPacket->mpTex2 = (u8*)dComIfG_getObjectRes("Always", 0x57);
g_env_light.mpRainPacket->mCamEyePos = pCamera->mLookat.mEye;
g_env_light.mpRainPacket->mCamCenterPos = pCamera->mLookat.mCenter;
g_env_light.mpRainPacket->mCenterDeltaMul = 0.0f;
g_env_light.mpRainPacket->field_0x3700 = 0.0f;
g_env_light.mpRainPacket->mSibukiAlpha = 0.0f;
g_env_light.mpRainPacket->mOverheadFade = 0.0f;
g_env_light.mpRainPacket->mFwdFade1 = 0.0f;
g_env_light.mpRainPacket->mFwdFade2 = 0.0f;
g_env_light.mpRainPacket->mStatus = 0.0f;
g_env_light.mpRainPacket->mCenterDelta.x = 0.0f;
g_env_light.mpRainPacket->mCenterDelta.y = 0.0f;
g_env_light.mpRainPacket->mCenterDelta.z = 0.0f;
for (int i = 0; i < 250; i++) {
g_env_light.mpRainPacket->mRainEff[i].mStatus = 0;
}
g_env_light.mpRainPacket->mRainCount = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -533,6 +852,7 @@ asm void dKyr_rain_init() {
#include "asm/d/kankyo/d_kankyo_rain/dKyr_rain_init__Fv.s"
}
#pragma pop
#endif
/* 8005CDA8-8005CDD0 0576E8 0028+00 1/1 0/0 0/0 .text rain_bg_chk__FP19dKankyo_rain_Packeti */
static void rain_bg_chk(dKankyo_rain_Packet* i_packet, int i_idx) {
@ -596,6 +916,40 @@ static asm void overhead_bg_chk() {
/* 8005CF78-8005D18C 0578B8 0214+00 1/1 0/0 0/0 .text forward_overhead_bg_chk__FP4cXyzf
*/
// Matches with literals
#ifdef NONMATCHING
static int forward_overhead_bg_chk(cXyz* param_0, f32 param_1) {
camera_class* iVar7 = dComIfGp_getCamera(0);
u32 r30 = 0;
dBgS_ObjGndChk_All adStack_88;
dBgS_RoofChk adStack_d8;
cXyz local_e8;
cXyz local_f4;
dKyr_get_vectle_calc(&iVar7->mLookat.mEye, &iVar7->mLookat.mCenter, &local_f4);
local_e8.x = iVar7->mLookat.mEye.x + local_f4.x * param_1;
local_e8.y = iVar7->mLookat.mEye.y + local_f4.y * param_1;
local_e8.z = iVar7->mLookat.mEye.z + local_f4.z * param_1;
local_e8.y = 50.0f + iVar7->mLookat.mEye.y;
*param_0 = local_e8;
adStack_d8.i_SetPos(local_e8);
if (1000000000.0f != dComIfG_Bgsp().RoofChk(&adStack_d8)) {
r30 = 1;
if (strcmp(dComIfGp_getStartStageName(), "F_SP122") == 0) {
if (dStage_roomControl_c::getStayNo() == 17) {
return 0;
}
}
}
local_e8.y += 10000.0f;
adStack_88.SetPos(&local_e8);
if (dComIfG_Bgsp().GroundCross(&adStack_88) > 50.0f + iVar7->mLookat.mEye.y) {
r30 = 1;
}
return r30;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -604,6 +958,7 @@ static asm void forward_overhead_bg_chk(cXyz* param_0, f32 param_1) {
#include "asm/d/kankyo/d_kankyo_rain/forward_overhead_bg_chk__FP4cXyzf.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@ -870,6 +1225,34 @@ asm void dKyr_housi_move() {
#pragma pop
/* 8005FBDC-8005FD48 05A51C 016C+00 0/0 1/1 0/0 .text dKyr_snow_init__Fv */
// Matches with literals
#ifdef NONMATCHING
void dKyr_snow_init() {
camera_class* pCamera = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera;
g_env_light.mpSnowPacket = new (32) dKankyo_snow_Packet();
if (g_env_light.mpSnowPacket == NULL) {
return;
}
g_env_light.mpSnowPacket->mpTex = (u8*)dComIfG_getObjectRes("Always", 0x56);
for (int i = 0; i < 500; i++) {
g_env_light.mpSnowPacket->mSnowEff[i].mStatus = 0;
}
g_env_light.mpSnowPacket->field_0x6d88 = 0;
g_env_light.mpSnowPacket->field_0x6d74 = pCamera->mLookat.mEye;
g_env_light.mpSnowPacket->field_0x6d80 = 0.0f;
g_env_light.mpSnowPacket->field_0x6d84 = 0.0f;
g_env_light.mpSnowPacket->field_0x6d8a = 0;
g_env_light.mpSnowPacket->field_0x6d8c = 0;
g_env_light.mpSnowPacket->field_0x6d90 = 0;
g_env_light.mpSnowPacket->field_0x6d91 = 0;
g_env_light.mpSnowPacket->field_0x6d92 = 0;
g_env_light.mpSnowPacket->field_0x6d93 = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -878,6 +1261,7 @@ asm void dKyr_snow_init() {
#include "asm/d/kankyo/d_kankyo_rain/dKyr_snow_init__Fv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@ -943,6 +1327,21 @@ asm void dKyr_snow_move() {
#pragma pop
/* 80061324-8006140C 05BC64 00E8+00 0/0 1/1 0/0 .text dKyr_star_init__Fv */
// Matches without literals
#ifdef NONMATCHING
void dKyr_star_init() {
camera_class* pCamera = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera;
g_env_light.mpStarPacket = new (32) dKankyo_star_Packet();
if (g_env_light.mpStarPacket == NULL) {
return;
}
g_env_light.mpStarPacket->field_0x10 = (u8*)dComIfG_getObjectRes("Always", 0x4a);
g_env_light.mpStarPacket->mEffect[0].field_0x28 = 1.0f;
g_env_light.mpStarPacket->mEffectNum = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -951,6 +1350,7 @@ asm void dKyr_star_init() {
#include "asm/d/kankyo/d_kankyo_rain/dKyr_star_init__Fv.s"
}
#pragma pop
#endif
/* 8006140C-80061438 05BD4C 002C+00 0/0 1/1 0/0 .text dKyr_star_move__Fv */
void dKyr_star_move() {
@ -1124,7 +1524,7 @@ SECTION_SDATA2 static f32 lit_7211 = 0.01745329238474369f;
SECTION_SDATA2 static f32 lit_7212 = 11000.0f;
/* 80452468-8045246C 000A68 0004+00 2/2 0/0 0/0 .sdata2 @7213 */
SECTION_SDATA2 static f32 lit_7213 = 23.0f / 10.0f;
SECTION_SDATA2 static f32 lit_7213 = 2.3f;
/* 80062B4C-80063670 05D48C 0B24+00 2/1 0/0 0/0 .text dKyr_draw_rev_moon__FPA4_fPPUc */
#pragma push
@ -1209,7 +1609,7 @@ static u8 struct_80450EF0[4];
static u8 data_80450EF4[4];
/* 8045247C-80452480 000A7C 0004+00 1/1 0/0 0/0 .sdata2 @7882 */
SECTION_SDATA2 static f32 lit_7882 = 29.0f / 10.0f;
SECTION_SDATA2 static f32 lit_7882 = 2.9f;
/* 80452480-80452484 000A80 0004+00 2/2 0/0 0/0 .sdata2 @7883 */
SECTION_SDATA2 static f32 lit_7883 = 34.0f;
@ -1218,22 +1618,22 @@ SECTION_SDATA2 static f32 lit_7883 = 34.0f;
SECTION_SDATA2 static f32 lit_7884 = 160.0f;
/* 80452488-8045248C 000A88 0004+00 1/1 0/0 0/0 .sdata2 @7885 */
SECTION_SDATA2 static f32 lit_7885 = 43.0f / 50.0f;
SECTION_SDATA2 static f32 lit_7885 = 0.86f;
/* 8045248C-80452490 000A8C 0004+00 1/1 0/0 0/0 .sdata2 @7886 */
SECTION_SDATA2 static f32 lit_7886 = 123.0f / 50.0f;
SECTION_SDATA2 static f32 lit_7886 = 2.46f;
/* 80452490-80452494 000A90 0004+00 2/2 0/0 0/0 .sdata2 @7887 */
SECTION_SDATA2 static f32 lit_7887 = 11.0f / 10.0f;
SECTION_SDATA2 static f32 lit_7887 = 1.1f;
/* 80452494-80452498 000A94 0004+00 1/1 0/0 0/0 .sdata2 @7888 */
SECTION_SDATA2 static f32 lit_7888 = 1.0f / 25.0f;
SECTION_SDATA2 static f32 lit_7888 = 0.04f;
/* 80452498-8045249C 000A98 0004+00 1/1 0/0 0/0 .sdata2 @7889 */
SECTION_SDATA2 static f32 lit_7889 = 3.0f / 40.0f;
SECTION_SDATA2 static f32 lit_7889 = 0.075f;
/* 8045249C-804524A0 000A9C 0004+00 1/1 0/0 0/0 .sdata2 @7890 */
SECTION_SDATA2 static f32 lit_7890 = 22.0f / 25.0f;
SECTION_SDATA2 static f32 lit_7890 = 0.88f;
/* 804524A0-804524A4 000AA0 0004+00 1/1 0/0 0/0 .sdata2 @7891 */
SECTION_SDATA2 static f32 lit_7891 = 30.599998474121094f;
@ -1242,7 +1642,7 @@ SECTION_SDATA2 static f32 lit_7891 = 30.599998474121094f;
SECTION_SDATA2 static f32 lit_7892 = 140.0f;
/* 804524A8-804524AC 000AA8 0004+00 1/1 0/0 0/0 .sdata2 @7893 */
SECTION_SDATA2 static f32 lit_7893 = 17.0f / 20.0f;
SECTION_SDATA2 static f32 lit_7893 = 0.85f;
/* 804524AC-804524B0 000AAC 0004+00 2/2 0/0 0/0 .sdata2 @7894 */
SECTION_SDATA2 static f32 lit_7894 = 60.0f;
@ -1368,7 +1768,7 @@ SECTION_SDATA2 static f32 lit_8919 = 123.0f;
SECTION_SDATA2 static f32 lit_8920 = 8.0f;
/* 804524E4-804524E8 000AE4 0004+00 1/1 0/0 0/0 .sdata2 @8921 */
SECTION_SDATA2 static f32 lit_8921 = -9.0f / 10.0f;
SECTION_SDATA2 static f32 lit_8921 = -0.9f;
/* 804524E8-804524EC 000AE8 0004+00 1/1 0/0 0/0 .sdata2 @8922 */
SECTION_SDATA2 static f32 lit_8922 = 213.0f;
@ -1622,10 +2022,10 @@ static f32 rot_9421;
static u8 struct_80450F1C[4];
/* 80452554-80452558 000B54 0004+00 2/2 0/0 0/0 .sdata2 @9833 */
SECTION_SDATA2 static f32 lit_9833 = 13.0f / 20.0f;
SECTION_SDATA2 static f32 lit_9833 = 0.65f;
/* 80452558-8045255C 000B58 0004+00 1/1 0/0 0/0 .sdata2 @9834 */
SECTION_SDATA2 static f32 lit_9834 = 7.0f / 25.0f;
SECTION_SDATA2 static f32 lit_9834 = 0.28f;
/* 8045255C-80452560 000B5C 0004+00 1/1 0/0 0/0 .sdata2 @9835 */
SECTION_SDATA2 static f32 lit_9835 = 540.0f;
@ -1663,10 +2063,10 @@ SECTION_SDATA2 static u32 lit_9851 = 0xFFFFFFFF;
SECTION_SDATA2 static u32 lit_9852 = 0xFFFFFFFF;
/* 80452574-80452578 000B74 0004+00 2/2 0/0 0/0 .sdata2 @10030 */
SECTION_SDATA2 static f32 lit_10030 = 11.0f / 20.0f;
SECTION_SDATA2 static f32 lit_10030 = 0.55f;
/* 80452578-8045257C 000B78 0004+00 2/2 0/0 0/0 .sdata2 @10031 */
SECTION_SDATA2 static f32 lit_10031 = 49.0f / 100.0f;
SECTION_SDATA2 static f32 lit_10031 = 0.49f;
/* 8006950C-8006A090 063E4C 0B84+00 0/0 1/1 0/0 .text drawCloudShadow__FPA4_fPPUc */
#pragma push
@ -1695,31 +2095,31 @@ static u8 data_80450F2C[4];
SECTION_SDATA2 static f32 lit_10593 = 240.0f;
/* 80452580-80452584 000B80 0004+00 1/1 0/0 0/0 .sdata2 @10594 */
SECTION_SDATA2 static f32 lit_10594 = 1.000000013351432e-10f;
SECTION_SDATA2 static f32 lit_10594 = 0.0000000001;
/* 80452584-80452588 000B84 0004+00 1/1 0/0 0/0 .sdata2 @10595 */
SECTION_SDATA2 static f32 lit_10595 = 0.0625f;
/* 80452588-8045258C 000B88 0004+00 1/1 0/0 0/0 .sdata2 @10596 */
SECTION_SDATA2 static f32 lit_10596 = 21.0f / 25.0f;
SECTION_SDATA2 static f32 lit_10596 = 0.84f;
/* 8045258C-80452590 000B8C 0004+00 1/1 0/0 0/0 .sdata2 @10597 */
SECTION_SDATA2 static f32 lit_10597 = 23.0f / 25.0f;
SECTION_SDATA2 static f32 lit_10597 = 0.92f;
/* 80452590-80452594 000B90 0004+00 1/1 0/0 0/0 .sdata2 @10598 */
SECTION_SDATA2 static f32 lit_10598 = 19.0f / 10.0f;
SECTION_SDATA2 static f32 lit_10598 = 1.9f;
/* 80452594-80452598 000B94 0004+00 1/1 0/0 0/0 .sdata2 @10599 */
SECTION_SDATA2 static f32 lit_10599 = 16.0f;
/* 80452598-8045259C 000B98 0004+00 2/2 0/0 0/0 .sdata2 @10600 */
SECTION_SDATA2 static f32 lit_10600 = 9.0f / 10.0f;
SECTION_SDATA2 static f32 lit_10600 = 0.9f;
/* 8045259C-804525A0 000B9C 0004+00 1/1 0/0 0/0 .sdata2 @10601 */
SECTION_SDATA2 static f32 lit_10601 = -4.0f;
/* 804525A0-804525A4 000BA0 0004+00 1/1 0/0 0/0 .sdata2 @10602 */
SECTION_SDATA2 static f32 lit_10602 = 121.0f / 100.0f;
SECTION_SDATA2 static f32 lit_10602 = 1.21f;
/* 804525A4-804525A8 000BA4 0004+00 1/1 0/0 0/0 .sdata2 @10603 */
SECTION_SDATA2 static f32 lit_10603 = 708.0f;

View File

@ -841,11 +841,11 @@ static void wether_move_sun() {
} else {
g_env_light.mpSunPacket->field_0x6c = tmp0;
}
g_env_light.mpSunPacket->field_0x44 = 0;
g_env_light.mpSunPacket->field_0x48 = 0;
g_env_light.mpSunPacket->field_0x4c = 0;
g_env_light.mpSunPacket->field_0x50 = 0;
g_env_light.mpSunPacket->field_0x54 = 0;
g_env_light.mpSunPacket->field_0x44[0] = 0;
g_env_light.mpSunPacket->field_0x44[1] = 0;
g_env_light.mpSunPacket->field_0x44[2] = 0;
g_env_light.mpSunPacket->field_0x44[3] = 0;
g_env_light.mpSunPacket->field_0x44[4] = 0;
g_env_light.mpSunPacket->field_0x58 = 0;
g_env_light.mpSunLenzPacket->mpResBall =

View File

@ -166,13 +166,12 @@ extern "C" u8 sManager__10JUTProcBar[4];
//
/* 80007D9C-80007E44 0026DC 00A8+00 1/1 0/0 0/0 .text createTimg__FUsUsUl */
// extra mr optimized out?
#ifdef NONMATCHING
static ResTIMG* createTimg(u16 width, u16 height, u32 format) {
u32 bufferSize = GXGetTexBufferSize(width, height, format, GX_FALSE, 0) + 0x20;
ResTIMG* timg;
timg = (ResTIMG*)JKRHeap::alloc(bufferSize, 0x20, NULL);
void* alloc_res = JKRHeap::alloc(bufferSize, 0x20, NULL);
timg = (ResTIMG*) alloc_res;
if (timg == NULL) {
return NULL;
@ -189,16 +188,6 @@ static ResTIMG* createTimg(u16 width, u16 height, u32 format) {
timg->imageOffset = 0x20;
return timg;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm ResTIMG* createTimg(u16 param_0, u16 param_1, u32 param_2) {
nofralloc
#include "asm/m_Do/m_Do_graphic/createTimg__FUsUsUl.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80450590-80450594 000010 0004+00 2/2 1/1 0/0 .sdata mBackColor__13mDoGph_gInf_c */