Work on d_a_tag_river_back (#1918)

This commit is contained in:
hev7 2023-09-09 11:46:24 +01:00 committed by GitHub
parent 64faf5012c
commit 189c40f58c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 205 additions and 416 deletions

View File

@ -1,27 +0,0 @@
lbl_80D5F2F8:
/* 80D5F2F8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D5F2FC 7C 08 02 A6 */ mflr r0
/* 80D5F300 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D5F304 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80D5F308 7C 7F 1B 78 */ mr r31, r3
/* 80D5F30C 38 00 00 FF */ li r0, 0xff
/* 80D5F310 98 03 05 72 */ stb r0, 0x572(r3)
/* 80D5F314 3C 60 80 D6 */ lis r3, l_arcName@ha /* 0x80D5F9A0@ha */
/* 80D5F318 80 03 F9 A0 */ lwz r0, l_arcName@l(r3) /* 0x80D5F9A0@l */
/* 80D5F31C 90 1F 01 00 */ stw r0, 0x100(r31)
/* 80D5F320 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80D5F324 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80D5F328 38 63 4F F8 */ addi r3, r3, 0x4ff8
/* 80D5F32C 7F E4 FB 78 */ mr r4, r31
/* 80D5F330 3C A0 80 D6 */ lis r5, l_evName@ha /* 0x80D5F9A4@ha */
/* 80D5F334 38 A5 F9 A4 */ addi r5, r5, l_evName@l /* 0x80D5F9A4@l */
/* 80D5F338 80 A5 00 00 */ lwz r5, 0(r5)
/* 80D5F33C 38 C0 00 FF */ li r6, 0xff
/* 80D5F340 4B 2E 84 19 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc
/* 80D5F344 B0 7F 05 74 */ sth r3, 0x574(r31)
/* 80D5F348 38 60 00 01 */ li r3, 1
/* 80D5F34C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80D5F350 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D5F354 7C 08 03 A6 */ mtlr r0
/* 80D5F358 38 21 00 10 */ addi r1, r1, 0x10
/* 80D5F35C 4E 80 00 20 */ blr

View File

@ -1,14 +0,0 @@
lbl_80D5F88C:
/* 80D5F88C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D5F890 7C 08 02 A6 */ mflr r0
/* 80D5F894 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D5F898 3C 80 80 D6 */ lis r4, l_arcName@ha /* 0x80D5F9A0@ha */
/* 80D5F89C 38 84 F9 A0 */ addi r4, r4, l_arcName@l /* 0x80D5F9A0@l */
/* 80D5F8A0 80 84 00 00 */ lwz r4, 0(r4)
/* 80D5F8A4 38 63 05 68 */ addi r3, r3, 0x568
/* 80D5F8A8 4B 2C D7 61 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc
/* 80D5F8AC 38 60 00 01 */ li r3, 1
/* 80D5F8B0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D5F8B4 7C 08 03 A6 */ mtlr r0
/* 80D5F8B8 38 21 00 10 */ addi r1, r1, 0x10
/* 80D5F8BC 4E 80 00 20 */ blr

View File

@ -1,43 +0,0 @@
lbl_80D5F66C:
/* 80D5F66C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80D5F670 7C 08 02 A6 */ mflr r0
/* 80D5F674 90 01 00 24 */ stw r0, 0x24(r1)
/* 80D5F678 39 61 00 20 */ addi r11, r1, 0x20
/* 80D5F67C 4B 60 2B 61 */ bl _savegpr_29
/* 80D5F680 7C 7D 1B 78 */ mr r29, r3
/* 80D5F684 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80D5F688 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80D5F68C 83 DF 5D AC */ lwz r30, 0x5dac(r31)
/* 80D5F690 A8 7D 05 76 */ lha r3, 0x576(r29)
/* 80D5F694 38 03 00 01 */ addi r0, r3, 1
/* 80D5F698 B0 1D 05 76 */ sth r0, 0x576(r29)
/* 80D5F69C 38 7F 4F F8 */ addi r3, r31, 0x4ff8
/* 80D5F6A0 A8 9D 05 74 */ lha r4, 0x574(r29)
/* 80D5F6A4 4B 2E 83 D5 */ bl endCheck__16dEvent_manager_cFs
/* 80D5F6A8 2C 03 00 00 */ cmpwi r3, 0
/* 80D5F6AC 41 82 00 18 */ beq lbl_80D5F6C4
/* 80D5F6B0 38 00 00 03 */ li r0, 3
/* 80D5F6B4 98 1D 05 71 */ stb r0, 0x571(r29)
/* 80D5F6B8 38 7F 4E C8 */ addi r3, r31, 0x4ec8
/* 80D5F6BC 4B 2E 2D AD */ bl reset__14dEvt_control_cFv
/* 80D5F6C0 48 00 00 34 */ b lbl_80D5F6F4
lbl_80D5F6C4:
/* 80D5F6C4 7F A3 EB 78 */ mr r3, r29
/* 80D5F6C8 48 00 00 49 */ bl demoProc__16daTagRiverBack_cFv
/* 80D5F6CC A8 1D 05 76 */ lha r0, 0x576(r29)
/* 80D5F6D0 2C 00 00 1E */ cmpwi r0, 0x1e
/* 80D5F6D4 40 82 00 20 */ bne lbl_80D5F6F4
/* 80D5F6D8 7F C3 F3 78 */ mr r3, r30
/* 80D5F6DC 3C 80 00 01 */ lis r4, 0x0001 /* 0x00010041@ha */
/* 80D5F6E0 38 84 00 41 */ addi r4, r4, 0x0041 /* 0x00010041@l */
/* 80D5F6E4 81 9E 06 28 */ lwz r12, 0x628(r30)
/* 80D5F6E8 81 8C 01 14 */ lwz r12, 0x114(r12)
/* 80D5F6EC 7D 89 03 A6 */ mtctr r12
/* 80D5F6F0 4E 80 04 21 */ bctrl
lbl_80D5F6F4:
/* 80D5F6F4 39 61 00 20 */ addi r11, r1, 0x20
/* 80D5F6F8 4B 60 2B 31 */ bl _restgpr_29
/* 80D5F6FC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80D5F700 7C 08 03 A6 */ mtlr r0
/* 80D5F704 38 21 00 20 */ addi r1, r1, 0x20
/* 80D5F708 4E 80 00 20 */ blr

View File

@ -1,47 +0,0 @@
lbl_80D5F5BC:
/* 80D5F5BC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D5F5C0 7C 08 02 A6 */ mflr r0
/* 80D5F5C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D5F5C8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80D5F5CC 93 C1 00 08 */ stw r30, 8(r1)
/* 80D5F5D0 7C 7E 1B 78 */ mr r30, r3
/* 80D5F5D4 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80D5F5D8 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80D5F5DC 83 E4 5D AC */ lwz r31, 0x5dac(r4)
/* 80D5F5E0 A0 03 00 F8 */ lhz r0, 0xf8(r3)
/* 80D5F5E4 28 00 00 02 */ cmplwi r0, 2
/* 80D5F5E8 40 82 00 44 */ bne lbl_80D5F62C
/* 80D5F5EC 38 00 00 02 */ li r0, 2
/* 80D5F5F0 98 1E 05 71 */ stb r0, 0x571(r30)
/* 80D5F5F4 38 64 4F F8 */ addi r3, r4, 0x4ff8
/* 80D5F5F8 3C 80 80 D6 */ lis r4, l_staffName@ha /* 0x80D5F9A8@ha */
/* 80D5F5FC 38 84 F9 A8 */ addi r4, r4, l_staffName@l /* 0x80D5F9A8@l */
/* 80D5F600 80 84 00 00 */ lwz r4, 0(r4)
/* 80D5F604 38 A0 00 00 */ li r5, 0
/* 80D5F608 38 C0 00 00 */ li r6, 0
/* 80D5F60C 4B 2E 85 11 */ bl getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci
/* 80D5F610 90 7E 05 78 */ stw r3, 0x578(r30)
/* 80D5F614 80 1F 05 70 */ lwz r0, 0x570(r31)
/* 80D5F618 64 00 00 01 */ oris r0, r0, 1
/* 80D5F61C 90 1F 05 70 */ stw r0, 0x570(r31)
/* 80D5F620 7F C3 F3 78 */ mr r3, r30
/* 80D5F624 48 00 00 ED */ bl demoProc__16daTagRiverBack_cFv
/* 80D5F628 48 00 00 2C */ b lbl_80D5F654
lbl_80D5F62C:
/* 80D5F62C A8 9E 05 74 */ lha r4, 0x574(r30)
/* 80D5F630 88 BE 05 72 */ lbz r5, 0x572(r30)
/* 80D5F634 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */
/* 80D5F638 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */
/* 80D5F63C 38 E0 00 00 */ li r7, 0
/* 80D5F640 39 00 00 01 */ li r8, 1
/* 80D5F644 4B 2B C0 39 */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs
/* 80D5F648 A0 1E 00 FA */ lhz r0, 0xfa(r30)
/* 80D5F64C 60 00 00 02 */ ori r0, r0, 2
/* 80D5F650 B0 1E 00 FA */ sth r0, 0xfa(r30)
lbl_80D5F654:
/* 80D5F654 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80D5F658 83 C1 00 08 */ lwz r30, 8(r1)
/* 80D5F65C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D5F660 7C 08 03 A6 */ mtlr r0
/* 80D5F664 38 21 00 10 */ addi r1, r1, 0x10
/* 80D5F668 4E 80 00 20 */ blr

View File

@ -1,31 +0,0 @@
lbl_80D5F548:
/* 80D5F548 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D5F54C 7C 08 02 A6 */ mflr r0
/* 80D5F550 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D5F554 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80D5F558 7C 7F 1B 78 */ mr r31, r3
/* 80D5F55C 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80D5F560 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80D5F564 80 04 5F 18 */ lwz r0, 0x5f18(r4)
/* 80D5F568 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb
/* 80D5F56C 41 82 00 3C */ beq lbl_80D5F5A8
/* 80D5F570 38 00 00 00 */ li r0, 0
/* 80D5F574 B0 1F 05 76 */ sth r0, 0x576(r31)
/* 80D5F578 38 00 00 01 */ li r0, 1
/* 80D5F57C 98 1F 05 71 */ stb r0, 0x571(r31)
/* 80D5F580 A8 9F 05 74 */ lha r4, 0x574(r31)
/* 80D5F584 88 BF 05 72 */ lbz r5, 0x572(r31)
/* 80D5F588 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */
/* 80D5F58C 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */
/* 80D5F590 38 E0 00 00 */ li r7, 0
/* 80D5F594 39 00 00 01 */ li r8, 1
/* 80D5F598 4B 2B C0 E5 */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs
/* 80D5F59C A0 1F 00 FA */ lhz r0, 0xfa(r31)
/* 80D5F5A0 60 00 00 02 */ ori r0, r0, 2
/* 80D5F5A4 B0 1F 00 FA */ sth r0, 0xfa(r31)
lbl_80D5F5A8:
/* 80D5F5A8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80D5F5AC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D5F5B0 7C 08 03 A6 */ mtlr r0
/* 80D5F5B4 38 21 00 10 */ addi r1, r1, 0x10
/* 80D5F5B8 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_80D5F900:
/* 80D5F900 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D5F904 7C 08 02 A6 */ mflr r0
/* 80D5F908 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D5F90C 4B FF FA 55 */ bl create__16daTagRiverBack_cFv
/* 80D5F910 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D5F914 7C 08 03 A6 */ mtlr r0
/* 80D5F918 38 21 00 10 */ addi r1, r1, 0x10
/* 80D5F91C 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_80D5F8E0:
/* 80D5F8E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D5F8E4 7C 08 02 A6 */ mflr r0
/* 80D5F8E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D5F8EC 4B FF FF A1 */ bl _delete__16daTagRiverBack_cFv
/* 80D5F8F0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D5F8F4 7C 08 03 A6 */ mtlr r0
/* 80D5F8F8 38 21 00 10 */ addi r1, r1, 0x10
/* 80D5F8FC 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_80D5F8C0:
/* 80D5F8C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D5F8C4 7C 08 02 A6 */ mflr r0
/* 80D5F8C8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D5F8CC 4B FF FB 25 */ bl execute__16daTagRiverBack_cFv
/* 80D5F8D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D5F8D4 7C 08 03 A6 */ mtlr r0
/* 80D5F8D8 38 21 00 10 */ addi r1, r1, 0x10
/* 80D5F8DC 4E 80 00 20 */ blr

View File

@ -1,43 +0,0 @@
lbl_80D5F3F0:
/* 80D5F3F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80D5F3F4 7C 08 02 A6 */ mflr r0
/* 80D5F3F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80D5F3FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80D5F400 7C 7F 1B 78 */ mr r31, r3
/* 80D5F404 80 03 00 B0 */ lwz r0, 0xb0(r3)
/* 80D5F408 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 80D5F40C 28 04 00 FF */ cmplwi r4, 0xff
/* 80D5F410 41 82 00 28 */ beq lbl_80D5F438
/* 80D5F414 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80D5F418 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80D5F41C 88 1F 04 BA */ lbz r0, 0x4ba(r31)
/* 80D5F420 7C 05 07 74 */ extsb r5, r0
/* 80D5F424 4B 2D 5F 3D */ bl isSwitch__10dSv_info_cCFii
/* 80D5F428 2C 03 00 00 */ cmpwi r3, 0
/* 80D5F42C 41 82 00 0C */ beq lbl_80D5F438
/* 80D5F430 38 60 00 01 */ li r3, 1
/* 80D5F434 48 00 00 44 */ b lbl_80D5F478
lbl_80D5F438:
/* 80D5F438 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 80D5F43C 54 04 86 3E */ rlwinm r4, r0, 0x10, 0x18, 0x1f
/* 80D5F440 28 04 00 FF */ cmplwi r4, 0xff
/* 80D5F444 41 82 00 28 */ beq lbl_80D5F46C
/* 80D5F448 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80D5F44C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80D5F450 88 1F 04 BA */ lbz r0, 0x4ba(r31)
/* 80D5F454 7C 05 07 74 */ extsb r5, r0
/* 80D5F458 4B 2D 5F 09 */ bl isSwitch__10dSv_info_cCFii
/* 80D5F45C 2C 03 00 00 */ cmpwi r3, 0
/* 80D5F460 40 82 00 0C */ bne lbl_80D5F46C
/* 80D5F464 38 60 00 01 */ li r3, 1
/* 80D5F468 48 00 00 10 */ b lbl_80D5F478
lbl_80D5F46C:
/* 80D5F46C 7F E3 FB 78 */ mr r3, r31
/* 80D5F470 48 00 00 1D */ bl event_proc_call__16daTagRiverBack_cFv
/* 80D5F474 38 60 00 01 */ li r3, 1
lbl_80D5F478:
/* 80D5F478 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80D5F47C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80D5F480 7C 08 03 A6 */ mtlr r0
/* 80D5F484 38 21 00 10 */ addi r1, r1, 0x10
/* 80D5F488 4E 80 00 20 */ blr

View File

@ -1,6 +1,48 @@
#ifndef D_A_TAG_RIVER_BACK_H
#define D_A_TAG_RIVER_BACK_H
#include "dolphin/types.h"
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "f_op/f_op_actor_mng.h"
class daTagRiverBack_c : public fopAc_ac_c {
public:
enum act_e {
WAIT_e,
SCENE_CHG_e,
};
enum action_e {
ACTION_WAIT_e,
ACTION_ORDER_EVENT_e,
ACTION_EVENT_e,
ACTION_DEAD_e,
};
/* 80D5F2F8 */ int Create();
/* 80D5F360 */ int create();
/* 80D5F3F0 */ int execute();
/* 80D5F48C */ void event_proc_call();
/* 80D5F548 */ void actionWait();
/* 80D5F5BC */ void actionOrderEvent();
/* 80D5F66C */ void actionEvent();
/* 80D5F70C */ void actionDead();
/* 80D5F710 */ int demoProc();
/* 80D5F88C */ int _delete();
void setAction(u8 i_action) { mAction = i_action; }
u8 getSwBit() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getSwBit2() { return fopAcM_GetParamBit(this, 0x10, 8); }
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ u8 mTimer;
/* 0x571 */ u8 mAction;
/* 0x572 */ u8 mMapToolID;
/* 0x574 */ s16 mEventID;
/* 0x576 */ s16 mCount;
/* 0x578 */ int mStaffID;
};
#endif /* D_A_TAG_RIVER_BACK_H */

View File

@ -1,99 +1,33 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_river_back
//
/**
* d_a_tag_river_back.cpp
* Tag - River Back
*/
#include "rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "d/d_procname.h"
#include "dol2asm.h"
//
// Types:
//
struct request_of_phase_process_class {};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct daTagRiverBack_c {
/* 80D5F2F8 */ void Create();
/* 80D5F360 */ void create();
/* 80D5F3F0 */ void execute();
/* 80D5F48C */ void event_proc_call();
/* 80D5F548 */ void actionWait();
/* 80D5F5BC */ void actionOrderEvent();
/* 80D5F66C */ void actionEvent();
/* 80D5F70C */ void actionDead();
/* 80D5F710 */ void demoProc();
/* 80D5F88C */ void _delete();
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
struct dEvt_control_c {
/* 80042468 */ void reset();
};
struct dEvent_manager_c {
/* 80047758 */ void getEventIdx(fopAc_ac_c*, char const*, u8);
/* 80047A78 */ void endCheck(s16);
/* 80047B1C */ void getMyStaffId(char const*, fopAc_ac_c*, int);
/* 80047D4C */ void getIsAddvance(int);
/* 80047E10 */ void getMyActIdx(int, char const* const*, int, int, int);
/* 800480EC */ void getMySubstanceP(int, char const*, int);
/* 8004817C */ void cutEnd(int);
};
struct JAISoundID {};
struct Vec {};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
//
// Forward References:
//
extern "C" void Create__16daTagRiverBack_cFv();
extern "C" void create__16daTagRiverBack_cFv();
extern "C" void execute__16daTagRiverBack_cFv();
extern "C" void event_proc_call__16daTagRiverBack_cFv();
extern "C" void actionWait__16daTagRiverBack_cFv();
extern "C" void actionOrderEvent__16daTagRiverBack_cFv();
extern "C" void actionEvent__16daTagRiverBack_cFv();
extern "C" void actionDead__16daTagRiverBack_cFv();
extern "C" void demoProc__16daTagRiverBack_cFv();
extern "C" void _delete__16daTagRiverBack_cFv();
extern "C" static void daTagRiverBack_Execute__FP16daTagRiverBack_c();
extern "C" static void daTagRiverBack_Delete__FP16daTagRiverBack_c();
extern "C" static void daTagRiverBack_Create__FP16daTagRiverBack_c();
extern "C" void func_80D5F920(void* _this, u8*);
// clib_calcTimer
extern "C" u8 func_80D5F920(u8*);
extern "C" extern char const* const d_a_tag_river_back__stringBase0;
extern "C" extern void* g_profile_Tag_RiverBack[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
extern "C" void dStage_changeScene__FifUlScsi();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc();
extern "C" void endCheck__16dEvent_manager_cFs();
extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci();
extern "C" void getIsAddvance__16dEvent_manager_cFi();
extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii();
extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci();
@ -101,12 +35,7 @@ extern "C" void cutEnd__16dEvent_manager_cFi();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" extern u8 data_80D5FA68[4];
@ -115,22 +44,15 @@ extern "C" extern u8 data_80D5FA68[4];
//
/* ############################################################################################## */
/* 80D5F950-80D5F950 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80D5F950 = "RvBack";
SECTION_DEAD static char const* const stringBase_80D5F957 = "RIVER_BACK";
#pragma pop
/* 80D5F980-80D5F98C 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80D5F98C-80D5F9A0 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
#pragma push
#pragma force_active on
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201,
/* padding */
0x40080000,
@ -141,51 +63,75 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
#pragma pop
/* 80D5F9A0-80D5F9A4 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_tag_river_back__stringBase0;
static char* l_arcName = "RvBack";
/* 80D5F9A4-80D5F9A8 -00001 0004+00 1/1 0/0 0/0 .data l_evName */
SECTION_DATA static void* l_evName = (void*)(((char*)&d_a_tag_river_back__stringBase0) + 0x7);
static char* l_evName = "RIVER_BACK";
/* 80D5F2F8-80D5F360 000078 0068+00 1/1 0/0 0/0 .text Create__16daTagRiverBack_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRiverBack_c::Create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/Create__16daTagRiverBack_cFv.s"
int daTagRiverBack_c::Create() {
mMapToolID = -1;
mEvtInfo.setArchiveName(l_arcName);
mEventID = i_dComIfGp_getEventManager().getEventIdx(this, l_evName, -1);
return 1;
}
#pragma pop
/* 80D5F360-80D5F3F0 0000E0 0090+00 1/1 0/0 0/0 .text create__16daTagRiverBack_cFv */
#ifdef NONMATCHING
// The diff shows this function as matching, but hash is different
int daTagRiverBack_c::create() {
fopAcM_SetupActor(this, daTagRiverBack_c);
int phase = dComIfG_resLoad(&mPhase, "RvBack");
int result = Create();
if (phase == cPhs_COMPLEATE_e && !result) {
phase = cPhs_ERROR_e;
}
return phase;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRiverBack_c::create() {
asm int daTagRiverBack_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/func_80D5F360.s"
}
#pragma pop
#endif
/* 80D5F3F0-80D5F48C 000170 009C+00 1/1 0/0 0/0 .text execute__16daTagRiverBack_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRiverBack_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/execute__16daTagRiverBack_cFv.s"
int daTagRiverBack_c::execute() {
u8 swBit = getSwBit();
if (swBit != 0xFF && i_fopAcM_isSwitch(this, swBit) != 0) {
return 1;
}
u8 swBit2 = getSwBit2();
if (swBit2 != 0xFF && i_fopAcM_isSwitch(this, swBit2) == 0) {
return 1;
}
event_proc_call();
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 80D5F950-80D5F950 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80D5F962 = "rvback";
#pragma pop
/* 80D5F9A8-80D5F9AC -00001 0004+00 1/1 0/0 0/0 .data l_staffName */
SECTION_DATA static void* l_staffName = (void*)(((char*)&d_a_tag_river_back__stringBase0) + 0x12);
static char* l_staffName = "rvback";
#ifdef NONMATCHING
/* 80D5F48C-80D5F548 00020C 00BC+00 1/1 0/0 0/0 .text event_proc_call__16daTagRiverBack_cFv */
void daTagRiverBack_c::event_proc_call() {
typedef void (daTagRiverBack_c::*actionFunc)();
/* 80D5F9DC-80D5FA0C 00005C 0030+00 0/1 0/0 0/0 .data l_func$3711 */
static actionFunc l_func[] = {&daTagRiverBack_c::actionWait,
&daTagRiverBack_c::actionOrderEvent,
&daTagRiverBack_c::actionEvent, &daTagRiverBack_c::actionDead};
(this->*l_func[mAction])();
}
#else
/* 80D5F9AC-80D5F9B8 -00001 000C+00 0/1 0/0 0/0 .data @3712 */
#pragma push
#pragma force_active on
@ -245,44 +191,94 @@ asm void daTagRiverBack_c::event_proc_call() {
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/event_proc_call__16daTagRiverBack_cFv.s"
}
#pragma pop
#endif
/* 80D5F548-80D5F5BC 0002C8 0074+00 1/0 0/0 0/0 .text actionWait__16daTagRiverBack_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRiverBack_c::actionWait() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/actionWait__16daTagRiverBack_cFv.s"
void daTagRiverBack_c::actionWait() {
if (i_dComIfGp_checkPlayerStatus0(0, 0x100000) != 0) {
mCount = 0;
setAction(ACTION_ORDER_EVENT_e);
fopAcM_orderOtherEventId(this, mEventID, mMapToolID, 0xFFFF, 0, 1);
mEvtInfo.i_onCondition(2);
}
}
#pragma pop
/* 80D5F5BC-80D5F66C 00033C 00B0+00 1/0 0/0 0/0 .text actionOrderEvent__16daTagRiverBack_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRiverBack_c::actionOrderEvent() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/actionOrderEvent__16daTagRiverBack_cFv.s"
void daTagRiverBack_c::actionOrderEvent() {
daPy_py_c* player = daPy_getPlayerActorClass();
if (mEvtInfo.checkCommandDemoAccrpt()) {
setAction(ACTION_EVENT_e);
mStaffID = i_dComIfGp_evmng_getMyStaffId(l_staffName, NULL, 0);
player->mNoResetFlg0 |= 0x10000;
demoProc();
} else {
fopAcM_orderOtherEventId(this, mEventID, mMapToolID, 0xFFFF, 0, 1);
mEvtInfo.i_onCondition(2);
}
}
#pragma pop
/* 80D5F66C-80D5F70C 0003EC 00A0+00 1/0 0/0 0/0 .text actionEvent__16daTagRiverBack_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRiverBack_c::actionEvent() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/actionEvent__16daTagRiverBack_cFv.s"
void daTagRiverBack_c::actionEvent() {
daPy_py_c* player = daPy_getPlayerActorClass();
mCount += 1;
if (dComIfGp_evmng_endCheck(mEventID)) {
setAction(ACTION_DEAD_e);
i_dComIfGp_event_reset();
} else {
demoProc();
if (mCount == 30) {
player->voiceStart(Z2SE_WL_V_FALL_TO_RESTART);
}
}
}
#pragma pop
/* 80D5F70C-80D5F710 00048C 0004+00 1/0 0/0 0/0 .text actionDead__16daTagRiverBack_cFv */
void daTagRiverBack_c::actionDead() {
/* empty function */
}
void daTagRiverBack_c::actionDead() {}
/* ############################################################################################## */
#ifdef NONMATCHING
// Does not match due to cLib_calcTimer, also "Timer" string
/* 80D5FA0C-80D5FA14 -00001 0008+00 1/1 0/0 0/0 .data action_table$3769 */
static char* action_table[] = {"WAIT", "SCENE_CHG"};
/* 80D5F710-80D5F88C 000490 017C+00 2/2 0/0 0/0 .text demoProc__16daTagRiverBack_cFv */
int daTagRiverBack_c::demoProc() {
int act_id = dComIfGp_evmng_getMyActIdx(mStaffID, action_table, ARRAY_SIZE(action_table), 0, 0);
if (dComIfGp_evmng_getIsAddvance(mStaffID)) {
switch (act_id) {
case WAIT_e:
int* timer_p = dComIfGp_evmng_getMyIntegerP(mStaffID, "Timer");
if (timer_p == NULL) {
mTimer = 1;
} else {
mTimer = *timer_p;
}
break;
case SCENE_CHG_e:
mDoAud_seStart(Z2SE_FORCE_BACK, 0, 0, 0);
}
}
switch (act_id) {
case WAIT_e:
// Function is cLib_calcTimer
if ((func_80D5F920(&mTimer) & 0xFF) == 0) {
dComIfGp_evmng_cutEnd(mStaffID);
}
break;
case SCENE_CHG_e:
dStage_changeScene(fopAcM_GetParamBit(this, 0, 8) & 0xFF, 0.0f, 0, fopAcM_GetRoomNo(this),
0, -1);
break;
default:
dComIfGp_evmng_cutEnd(mStaffID);
}
return 0;
}
#else
/* 80D5F944-80D5F948 000000 0004+00 1/1 0/0 0/0 .rodata @3813 */
SECTION_RODATA static f32 const lit_3813 = 1.0f;
COMPILER_STRIP_GATE(0x80D5F944, &lit_3813);
@ -324,60 +320,42 @@ SECTION_DATA static void* action_table[2] = {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRiverBack_c::demoProc() {
asm int daTagRiverBack_c::demoProc() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/demoProc__16daTagRiverBack_cFv.s"
}
#pragma pop
#endif
/* 80D5F88C-80D5F8C0 00060C 0034+00 1/1 0/0 0/0 .text _delete__16daTagRiverBack_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagRiverBack_c::_delete() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/_delete__16daTagRiverBack_cFv.s"
int daTagRiverBack_c::_delete() {
dComIfG_resDelete(&mPhase, l_arcName);
return 1;
}
#pragma pop
/* 80D5F8C0-80D5F8E0 000640 0020+00 1/0 0/0 0/0 .text daTagRiverBack_Execute__FP16daTagRiverBack_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagRiverBack_Execute(daTagRiverBack_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/daTagRiverBack_Execute__FP16daTagRiverBack_c.s"
static int daTagRiverBack_Execute(daTagRiverBack_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 80D5F8E0-80D5F900 000660 0020+00 1/0 0/0 0/0 .text daTagRiverBack_Delete__FP16daTagRiverBack_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagRiverBack_Delete(daTagRiverBack_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/daTagRiverBack_Delete__FP16daTagRiverBack_c.s"
static int daTagRiverBack_Delete(daTagRiverBack_c* i_this) {
return i_this->_delete();
}
#pragma pop
/* 80D5F900-80D5F920 000680 0020+00 1/0 0/0 0/0 .text daTagRiverBack_Create__FP16daTagRiverBack_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagRiverBack_Create(daTagRiverBack_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/daTagRiverBack_Create__FP16daTagRiverBack_c.s"
static int daTagRiverBack_Create(daTagRiverBack_c* i_this) {
return i_this->create();
}
#pragma pop
/* 80D5F920-80D5F93C 0006A0 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Uc>__FPUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
extern "C" asm void func_80D5F920(void* _this, u8* param_0) {
extern "C" asm u8 func_80D5F920(u8* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_river_back/d_a_tag_river_back/func_80D5F920.s"
}
@ -385,25 +363,26 @@ extern "C" asm void func_80D5F920(void* _this, u8* param_0) {
/* ############################################################################################## */
/* 80D5FA14-80D5FA34 -00001 0020+00 1/0 0/0 0/0 .data l_daTagRiverBack_Method */
SECTION_DATA static void* l_daTagRiverBack_Method[8] = {
(void*)daTagRiverBack_Create__FP16daTagRiverBack_c,
(void*)daTagRiverBack_Delete__FP16daTagRiverBack_c,
(void*)daTagRiverBack_Execute__FP16daTagRiverBack_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
static actor_method_class l_daTagRiverBack_Method = {(process_method_func)daTagRiverBack_Create,
(process_method_func)daTagRiverBack_Delete,
(process_method_func)daTagRiverBack_Execute};
/* 80D5FA34-80D5FA64 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_RiverBack */
SECTION_DATA extern void* g_profile_Tag_RiverBack[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x01800000, (void*)&g_fpcLf_Method,
(void*)0x0000057C, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x022C0000, (void*)&l_daTagRiverBack_Method,
(void*)0x00040000, (void*)0x000E0000,
extern actor_process_profile_definition g_profile_Tag_RiverBack = {
-3, // mLayerID
7, // mListID
-3, // mListPrio
PROC_Tag_RiverBack, // mProcName
&g_fpcLf_Method.mBase, // mSubMtd
sizeof(daTagRiverBack_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // mSubMtd
0x022C, // mPriority
&l_daTagRiverBack_Method, // mSubMtd
0x00040000, // mStatus
0, // mActorType
14, // mCullType
};
/* 80D5F950-80D5F950 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */