mirror of https://github.com/zeldaret/tp
Work on daObjIce_s_c (#2204)
This commit is contained in:
parent
2fd702c0ac
commit
1521f746d6
|
|
@ -1,31 +0,0 @@
|
||||||
lbl_80C2157C:
|
|
||||||
/* 80C2157C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
||||||
/* 80C21580 7C 08 02 A6 */ mflr r0
|
|
||||||
/* 80C21584 90 01 00 14 */ stw r0, 0x14(r1)
|
|
||||||
/* 80C21588 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
||||||
/* 80C2158C 7C 7F 1B 78 */ mr r31, r3
|
|
||||||
/* 80C21590 3C 60 80 C2 */ lis r3, l_arcName@ha /* 0x80C21BA8@ha */
|
|
||||||
/* 80C21594 38 63 1B A8 */ addi r3, r3, l_arcName@l /* 0x80C21BA8@l */
|
|
||||||
/* 80C21598 80 63 00 00 */ lwz r3, 0(r3)
|
|
||||||
/* 80C2159C 3C 80 80 C2 */ lis r4, d_a_obj_ice_s__stringBase0@ha /* 0x80C21B8C@ha */
|
|
||||||
/* 80C215A0 38 84 1B 8C */ addi r4, r4, d_a_obj_ice_s__stringBase0@l /* 0x80C21B8C@l */
|
|
||||||
/* 80C215A4 38 84 00 12 */ addi r4, r4, 0x12
|
|
||||||
/* 80C215A8 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
|
||||||
/* 80C215AC 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
|
||||||
/* 80C215B0 3C A5 00 02 */ addis r5, r5, 2
|
|
||||||
/* 80C215B4 38 C0 00 80 */ li r6, 0x80
|
|
||||||
/* 80C215B8 38 A5 C2 F8 */ addi r5, r5, -15624
|
|
||||||
/* 80C215BC 4B 41 AD C1 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci
|
|
||||||
/* 80C215C0 3C 80 00 08 */ lis r4, 8
|
|
||||||
/* 80C215C4 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */
|
|
||||||
/* 80C215C8 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */
|
|
||||||
/* 80C215CC 4B 3F 36 89 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl
|
|
||||||
/* 80C215D0 90 7F 06 34 */ stw r3, 0x634(r31)
|
|
||||||
/* 80C215D4 80 7F 06 34 */ lwz r3, 0x634(r31)
|
|
||||||
/* 80C215D8 30 03 FF FF */ addic r0, r3, -1
|
|
||||||
/* 80C215DC 7C 60 19 10 */ subfe r3, r0, r3
|
|
||||||
/* 80C215E0 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
||||||
/* 80C215E4 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
||||||
/* 80C215E8 7C 08 03 A6 */ mtlr r0
|
|
||||||
/* 80C215EC 38 21 00 10 */ addi r1, r1, 0x10
|
|
||||||
/* 80C215F0 4E 80 00 20 */ blr
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
lbl_80C21A08:
|
|
||||||
/* 80C21A08 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
||||||
/* 80C21A0C 7C 08 02 A6 */ mflr r0
|
|
||||||
/* 80C21A10 90 01 00 14 */ stw r0, 0x14(r1)
|
|
||||||
/* 80C21A14 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
||||||
/* 80C21A18 7C 7F 1B 78 */ mr r31, r3
|
|
||||||
/* 80C21A1C 38 7F 06 38 */ addi r3, r31, 0x638
|
|
||||||
/* 80C21A20 3C 80 80 C2 */ lis r4, l_arcName@ha /* 0x80C21BA8@ha */
|
|
||||||
/* 80C21A24 38 84 1B A8 */ addi r4, r4, l_arcName@l /* 0x80C21BA8@l */
|
|
||||||
/* 80C21A28 80 84 00 00 */ lwz r4, 0(r4)
|
|
||||||
/* 80C21A2C 4B 40 B5 DD */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc
|
|
||||||
/* 80C21A30 88 1F 06 40 */ lbz r0, 0x640(r31)
|
|
||||||
/* 80C21A34 28 00 00 00 */ cmplwi r0, 0
|
|
||||||
/* 80C21A38 41 82 00 10 */ beq lbl_80C21A48
|
|
||||||
/* 80C21A3C 38 00 00 00 */ li r0, 0
|
|
||||||
/* 80C21A40 3C 60 80 C2 */ lis r3, data_80C21C38@ha /* 0x80C21C38@ha */
|
|
||||||
/* 80C21A44 98 03 1C 38 */ stb r0, data_80C21C38@l(r3) /* 0x80C21C38@l */
|
|
||||||
lbl_80C21A48:
|
|
||||||
/* 80C21A48 38 60 00 01 */ li r3, 1
|
|
||||||
/* 80C21A4C 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
||||||
/* 80C21A50 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
||||||
/* 80C21A54 7C 08 03 A6 */ mtlr r0
|
|
||||||
/* 80C21A58 38 21 00 10 */ addi r1, r1, 0x10
|
|
||||||
/* 80C21A5C 4E 80 00 20 */ blr
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
lbl_80C21964:
|
|
||||||
/* 80C21964 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
||||||
/* 80C21968 7C 08 02 A6 */ mflr r0
|
|
||||||
/* 80C2196C 90 01 00 14 */ stw r0, 0x14(r1)
|
|
||||||
/* 80C21970 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
||||||
/* 80C21974 93 C1 00 08 */ stw r30, 8(r1)
|
|
||||||
/* 80C21978 7C 7E 1B 78 */ mr r30, r3
|
|
||||||
/* 80C2197C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
|
|
||||||
/* 80C21980 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
|
|
||||||
/* 80C21984 38 80 00 10 */ li r4, 0x10
|
|
||||||
/* 80C21988 38 BE 04 D0 */ addi r5, r30, 0x4d0
|
|
||||||
/* 80C2198C 38 DE 01 0C */ addi r6, r30, 0x10c
|
|
||||||
/* 80C21990 4B 58 1E 35 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c
|
|
||||||
/* 80C21994 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
|
|
||||||
/* 80C21998 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
|
|
||||||
/* 80C2199C 80 9E 06 34 */ lwz r4, 0x634(r30)
|
|
||||||
/* 80C219A0 80 84 00 04 */ lwz r4, 4(r4)
|
|
||||||
/* 80C219A4 38 BE 01 0C */ addi r5, r30, 0x10c
|
|
||||||
/* 80C219A8 4B 58 33 F9 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c
|
|
||||||
/* 80C219AC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
|
||||||
/* 80C219B0 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
|
||||||
/* 80C219B4 80 04 5F 78 */ lwz r0, 0x5f78(r4)
|
|
||||||
/* 80C219B8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
|
|
||||||
/* 80C219BC 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */
|
|
||||||
/* 80C219C0 90 1F 00 48 */ stw r0, 0x48(r31)
|
|
||||||
/* 80C219C4 80 04 5F 7C */ lwz r0, 0x5f7c(r4)
|
|
||||||
/* 80C219C8 90 1F 00 4C */ stw r0, 0x4c(r31)
|
|
||||||
/* 80C219CC 80 7E 06 34 */ lwz r3, 0x634(r30)
|
|
||||||
/* 80C219D0 4B 3E C2 F5 */ bl mDoExt_modelUpdateDL__FP8J3DModel
|
|
||||||
/* 80C219D4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
|
||||||
/* 80C219D8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
|
||||||
/* 80C219DC 80 03 5F 80 */ lwz r0, 0x5f80(r3)
|
|
||||||
/* 80C219E0 90 1F 00 48 */ stw r0, 0x48(r31)
|
|
||||||
/* 80C219E4 80 03 5F 84 */ lwz r0, 0x5f84(r3)
|
|
||||||
/* 80C219E8 90 1F 00 4C */ stw r0, 0x4c(r31)
|
|
||||||
/* 80C219EC 38 60 00 01 */ li r3, 1
|
|
||||||
/* 80C219F0 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
||||||
/* 80C219F4 83 C1 00 08 */ lwz r30, 8(r1)
|
|
||||||
/* 80C219F8 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
||||||
/* 80C219FC 7C 08 03 A6 */ mtlr r0
|
|
||||||
/* 80C21A00 38 21 00 10 */ addi r1, r1, 0x10
|
|
||||||
/* 80C21A04 4E 80 00 20 */ blr
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
lbl_80C21A60:
|
|
||||||
/* 80C21A60 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
||||||
/* 80C21A64 7C 08 02 A6 */ mflr r0
|
|
||||||
/* 80C21A68 90 01 00 14 */ stw r0, 0x14(r1)
|
|
||||||
/* 80C21A6C 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
||||||
/* 80C21A70 7C 7F 1B 79 */ or. r31, r3, r3
|
|
||||||
/* 80C21A74 41 82 00 1C */ beq lbl_80C21A90
|
|
||||||
/* 80C21A78 3C A0 80 C2 */ lis r5, __vt__17daOBJ_ICE_S_HIO_c@ha /* 0x80C21C24@ha */
|
|
||||||
/* 80C21A7C 38 05 1C 24 */ addi r0, r5, __vt__17daOBJ_ICE_S_HIO_c@l /* 0x80C21C24@l */
|
|
||||||
/* 80C21A80 90 1F 00 00 */ stw r0, 0(r31)
|
|
||||||
/* 80C21A84 7C 80 07 35 */ extsh. r0, r4
|
|
||||||
/* 80C21A88 40 81 00 08 */ ble lbl_80C21A90
|
|
||||||
/* 80C21A8C 4B 6A D2 B1 */ bl __dl__FPv
|
|
||||||
lbl_80C21A90:
|
|
||||||
/* 80C21A90 7F E3 FB 78 */ mr r3, r31
|
|
||||||
/* 80C21A94 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
||||||
/* 80C21A98 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
||||||
/* 80C21A9C 7C 08 03 A6 */ mtlr r0
|
|
||||||
/* 80C21AA0 38 21 00 10 */ addi r1, r1, 0x10
|
|
||||||
/* 80C21AA4 4E 80 00 20 */ blr
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
lbl_80C215F4:
|
|
||||||
/* 80C215F4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
||||||
/* 80C215F8 7C 08 02 A6 */ mflr r0
|
|
||||||
/* 80C215FC 90 01 00 14 */ stw r0, 0x14(r1)
|
|
||||||
/* 80C21600 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
||||||
/* 80C21604 7C 7F 1B 78 */ mr r31, r3
|
|
||||||
/* 80C21608 4B FF F8 B9 */ bl initBaseMtx__12daObjIce_s_cFv
|
|
||||||
/* 80C2160C 3C 60 80 C2 */ lis r3, rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c@ha /* 0x80C20F48@ha */
|
|
||||||
/* 80C21610 38 03 0F 48 */ addi r0, r3, rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c@l /* 0x80C20F48@l */
|
|
||||||
/* 80C21614 80 7F 05 68 */ lwz r3, 0x568(r31)
|
|
||||||
/* 80C21618 90 03 00 B4 */ stw r0, 0xb4(r3)
|
|
||||||
/* 80C2161C 38 60 00 04 */ li r3, 4
|
|
||||||
/* 80C21620 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
||||||
/* 80C21624 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
||||||
/* 80C21628 7C 08 03 A6 */ mtlr r0
|
|
||||||
/* 80C2162C 38 21 00 10 */ addi r1, r1, 0x10
|
|
||||||
/* 80C21630 4E 80 00 20 */ blr
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
lbl_80C20EC0:
|
|
||||||
/* 80C20EC0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
||||||
/* 80C20EC4 7C 08 02 A6 */ mflr r0
|
|
||||||
/* 80C20EC8 90 01 00 14 */ stw r0, 0x14(r1)
|
|
||||||
/* 80C20ECC 80 83 06 34 */ lwz r4, 0x634(r3)
|
|
||||||
/* 80C20ED0 38 04 00 24 */ addi r0, r4, 0x24
|
|
||||||
/* 80C20ED4 90 03 05 04 */ stw r0, 0x504(r3)
|
|
||||||
/* 80C20ED8 48 00 00 15 */ bl setBaseMtx__12daObjIce_s_cFv
|
|
||||||
/* 80C20EDC 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
||||||
/* 80C20EE0 7C 08 03 A6 */ mtlr r0
|
|
||||||
/* 80C20EE4 38 21 00 10 */ addi r1, r1, 0x10
|
|
||||||
/* 80C20EE8 4E 80 00 20 */ blr
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
lbl_80C20EEC:
|
|
||||||
/* 80C20EEC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
||||||
/* 80C20EF0 7C 08 02 A6 */ mflr r0
|
|
||||||
/* 80C20EF4 90 01 00 14 */ stw r0, 0x14(r1)
|
|
||||||
/* 80C20EF8 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
||||||
/* 80C20EFC 7C 7F 1B 78 */ mr r31, r3
|
|
||||||
/* 80C20F00 38 7F 04 D0 */ addi r3, r31, 0x4d0
|
|
||||||
/* 80C20F04 4B 3E BE 61 */ bl transS__14mDoMtx_stack_cFRC4cXyz
|
|
||||||
/* 80C20F08 38 7F 04 E4 */ addi r3, r31, 0x4e4
|
|
||||||
/* 80C20F0C 4B 3E C0 39 */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz
|
|
||||||
/* 80C20F10 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
|
||||||
/* 80C20F14 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
|
||||||
/* 80C20F18 80 9F 06 34 */ lwz r4, 0x634(r31)
|
|
||||||
/* 80C20F1C 38 84 00 24 */ addi r4, r4, 0x24
|
|
||||||
/* 80C20F20 4B 72 55 91 */ bl PSMTXCopy
|
|
||||||
/* 80C20F24 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
|
||||||
/* 80C20F28 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
|
||||||
/* 80C20F2C 38 9F 05 6C */ addi r4, r31, 0x56c
|
|
||||||
/* 80C20F30 4B 72 55 81 */ bl PSMTXCopy
|
|
||||||
/* 80C20F34 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
||||||
/* 80C20F38 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
||||||
/* 80C20F3C 7C 08 03 A6 */ mtlr r0
|
|
||||||
/* 80C20F40 38 21 00 10 */ addi r1, r1, 0x10
|
|
||||||
/* 80C20F44 4E 80 00 20 */ blr
|
|
||||||
|
|
@ -2,6 +2,10 @@
|
||||||
#define D_A_OBJ_ICE_S_H
|
#define D_A_OBJ_ICE_S_H
|
||||||
|
|
||||||
#include "f_op/f_op_actor_mng.h"
|
#include "f_op/f_op_actor_mng.h"
|
||||||
|
#include "d/bg/d_bg_s_movebg_actor.h"
|
||||||
|
#include "d/cc/d_cc_d.h"
|
||||||
|
|
||||||
|
//#define WITH_MOVEBG
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup actors-objects
|
* @ingroup actors-objects
|
||||||
|
|
@ -11,22 +15,57 @@
|
||||||
* @details
|
* @details
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class daObjIce_s_c : public fopAc_ac_c {
|
class daObjIce_s_c : public
|
||||||
|
#ifdef WITH_MOVEBG
|
||||||
|
dBgS_MoveBgActor
|
||||||
|
#else
|
||||||
|
fopAc_ac_c
|
||||||
|
#endif
|
||||||
|
{
|
||||||
public:
|
public:
|
||||||
/* 80C209DC */ void RideOn_Angle(s16&, f32, s16, f32);
|
/* 80C209DC */ void RideOn_Angle(s16&, f32, s16, f32);
|
||||||
/* 80C20A44 */ void Check_LinkRideOn(cXyz);
|
/* 80C20A44 */ bool Check_LinkRideOn(cXyz);
|
||||||
/* 80C20C98 */ void Check_RideOn(cXyz);
|
/* 80C20C98 */ bool Check_RideOn(cXyz);
|
||||||
/* 80C20EC0 */ void initBaseMtx();
|
/* 80C20EC0 */ void initBaseMtx();
|
||||||
/* 80C20EEC */ void setBaseMtx();
|
/* 80C20EEC */ void setBaseMtx();
|
||||||
/* 80C212CC */ void create();
|
/* 80C212CC */ int create();
|
||||||
/* 80C2157C */ void CreateHeap();
|
/* 80C2157C */ int CreateHeap();
|
||||||
/* 80C215F4 */ void Create();
|
/* 80C215F4 */ int Create();
|
||||||
/* 80C21634 */ void Execute(f32 (**)[3][4]);
|
/* 80C21634 */ int Execute(f32 (**)[3][4]);
|
||||||
/* 80C21964 */ void Draw();
|
/* 80C21964 */ int Draw();
|
||||||
/* 80C21A08 */ void Delete();
|
/* 80C21A08 */ int Delete();
|
||||||
|
|
||||||
private:
|
#ifndef WITH_MOVEBG
|
||||||
/* 0x568 */ u8 field_0x568[0x644 - 0x568];
|
/* 0x568 */ dBgW* mpBgW;
|
||||||
|
/* 0x56C */ Mtx mBgMtx;
|
||||||
|
/* 0x5BC */ void* movebgVTable;
|
||||||
|
#endif
|
||||||
|
/* 0x5A0 */ f32 field_0x5a0;
|
||||||
|
/* 0x5A4 */ f32 field_0x5a4;
|
||||||
|
/* 0x5A8 */ f32 field_0x5a8;
|
||||||
|
/* 0x5AC */ s16 field_0x5ac;
|
||||||
|
/* 0x5B0 */ f32 field_0x5b0;
|
||||||
|
/* 0x5AE */ u8 field_0x5b4[0x5c4 - 0x5b4];
|
||||||
|
/* 0x5C4 */ u8 field_0x5c4;
|
||||||
|
/* 0x5C5 */ u8 field_0x5c5;
|
||||||
|
/* 0x5C8 */ cXyz field_0x5c8;
|
||||||
|
/* 0x5D8 */ s16 field_0x5d4;
|
||||||
|
/* 0x5D8 */ s16 field_0x5d6;
|
||||||
|
/* 0x5D8 */ s16 field_0x5d8;
|
||||||
|
/* 0x5DA */ s16 field_0x5da;
|
||||||
|
/* 0x5DC */ s16 field_0x5dc;
|
||||||
|
/* 0x5DE */ s16 field_0x5de;
|
||||||
|
/* 0x5E0 */ f32 field_0x5e0;
|
||||||
|
/* 0x5E4 */ s16 field_0x5e4;
|
||||||
|
/* 0x5E6 */ s16 field_0x5e6;
|
||||||
|
/* 0x5E8 */ u8 field_0x5e8;
|
||||||
|
/* 0x5EC */ int field_0x5ec;
|
||||||
|
/* 0x5F0 */ int field_0x5f0;
|
||||||
|
/* 0x5F4 */ int field_0x5f4;
|
||||||
|
/* 0x5EC */ dCcD_Stts mStts;
|
||||||
|
/* 0x634 */ J3DModel* mModel;
|
||||||
|
/* 0x638 */ request_of_phase_process_class mPhase;
|
||||||
|
/* 0x640 */ u8 field_0x640;
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC_ASSERT(sizeof(daObjIce_s_c) == 0x644);
|
STATIC_ASSERT(sizeof(daObjIce_s_c) == 0x644);
|
||||||
|
|
@ -34,7 +73,11 @@ STATIC_ASSERT(sizeof(daObjIce_s_c) == 0x644);
|
||||||
class daOBJ_ICE_S_HIO_c {
|
class daOBJ_ICE_S_HIO_c {
|
||||||
public:
|
public:
|
||||||
/* 80C209AC */ daOBJ_ICE_S_HIO_c();
|
/* 80C209AC */ daOBJ_ICE_S_HIO_c();
|
||||||
/* 80C21A60 */ ~daOBJ_ICE_S_HIO_c();
|
/* 80C21A60 */ virtual ~daOBJ_ICE_S_HIO_c();
|
||||||
|
|
||||||
|
/* 0x4 */ s8 field_0x4;
|
||||||
|
/* 0x8 */ f32 field_0x8;
|
||||||
|
/* 0xC */ f32 field_0xc;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,11 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s.h"
|
#include "rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s.h"
|
||||||
|
#include "SSystem/SComponent/c_lib.h"
|
||||||
|
#include "SSystem/SComponent/c_math.h"
|
||||||
|
#include "d/a/d_a_player.h"
|
||||||
|
#include "d/com/d_com_inf_game.h"
|
||||||
|
#include "d/bg/d_bg_w.h"
|
||||||
#include "dol2asm.h"
|
#include "dol2asm.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -81,7 +86,6 @@ extern "C" void _restgpr_29();
|
||||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
|
||||||
extern "C" u8 sincosTable___5JMath[65536];
|
extern "C" u8 sincosTable___5JMath[65536];
|
||||||
extern "C" void __register_global_object();
|
extern "C" void __register_global_object();
|
||||||
|
|
||||||
|
|
@ -98,14 +102,8 @@ COMPILER_STRIP_GATE(0x80C21AF8, &lit_3644);
|
||||||
SECTION_RODATA static f32 const lit_3645 = 20.0f;
|
SECTION_RODATA static f32 const lit_3645 = 20.0f;
|
||||||
COMPILER_STRIP_GATE(0x80C21AFC, &lit_3645);
|
COMPILER_STRIP_GATE(0x80C21AFC, &lit_3645);
|
||||||
|
|
||||||
/* 80C21B8C-80C21B8C 000094 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
|
||||||
#pragma push
|
|
||||||
#pragma force_active on
|
|
||||||
SECTION_DEAD static char const* const stringBase_80C21B8C = "V_Ice_s";
|
|
||||||
#pragma pop
|
|
||||||
|
|
||||||
/* 80C21BA8-80C21BAC -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
/* 80C21BA8-80C21BAC -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_ice_s__stringBase0;
|
static char* l_arcName = "V_Ice_s";
|
||||||
|
|
||||||
/* 80C21BAC-80C21BCC -00001 0020+00 1/0 0/0 0/0 .data l_daObjIce_s_Method */
|
/* 80C21BAC-80C21BCC -00001 0020+00 1/0 0/0 0/0 .data l_daObjIce_s_Method */
|
||||||
static actor_method_class l_daObjIce_s_Method = {
|
static actor_method_class l_daObjIce_s_Method = {
|
||||||
|
|
@ -156,6 +154,14 @@ SECTION_DATA extern void* __vt__17daOBJ_ICE_S_HIO_c[3] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* 80C209AC-80C209DC 0000EC 0030+00 1/1 0/0 0/0 .text __ct__17daOBJ_ICE_S_HIO_cFv */
|
/* 80C209AC-80C209DC 0000EC 0030+00 1/1 0/0 0/0 .text __ct__17daOBJ_ICE_S_HIO_cFv */
|
||||||
|
// Matches with literals
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
daOBJ_ICE_S_HIO_c::daOBJ_ICE_S_HIO_c() {
|
||||||
|
field_0x4 = -1;
|
||||||
|
field_0x8 = 5000.0f;
|
||||||
|
field_0xc = 20.0f;
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
|
|
@ -164,6 +170,7 @@ asm daOBJ_ICE_S_HIO_c::daOBJ_ICE_S_HIO_c() {
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/__ct__17daOBJ_ICE_S_HIO_cFv.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/__ct__17daOBJ_ICE_S_HIO_cFv.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ############################################################################################## */
|
/* ############################################################################################## */
|
||||||
/* 80C21B00-80C21B08 000008 0004+04 0/4 0/0 0/0 .rodata @3686 */
|
/* 80C21B00-80C21B08 000008 0004+04 0/4 0/0 0/0 .rodata @3686 */
|
||||||
|
|
@ -191,6 +198,12 @@ COMPILER_STRIP_GATE(0x80C21B08, &lit_3688);
|
||||||
|
|
||||||
/* 80C209DC-80C20A44 00011C 0068+00 2/2 0/0 0/0 .text RideOn_Angle__12daObjIce_s_cFRsfsf
|
/* 80C209DC-80C20A44 00011C 0068+00 2/2 0/0 0/0 .text RideOn_Angle__12daObjIce_s_cFRsfsf
|
||||||
*/
|
*/
|
||||||
|
// Matches with ltierals
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
void daObjIce_s_c::RideOn_Angle(s16& param_1, f32 param_2, s16 param_3, f32 param_4) {
|
||||||
|
cLib_addCalcAngleS(¶m_1, param_3 * (param_2 / param_4), 5, 0x100, 1);
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
|
|
@ -199,6 +212,7 @@ asm void daObjIce_s_c::RideOn_Angle(s16& param_0, f32 param_1, s16 param_2, f32
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/RideOn_Angle__12daObjIce_s_cFRsfsf.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/RideOn_Angle__12daObjIce_s_cFRsfsf.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ############################################################################################## */
|
/* ############################################################################################## */
|
||||||
/* 80C21B10-80C21B18 000018 0008+00 0/3 0/0 0/0 .rodata @3746 */
|
/* 80C21B10-80C21B18 000018 0008+00 0/3 0/0 0/0 .rodata @3746 */
|
||||||
|
|
@ -257,14 +271,40 @@ COMPILER_STRIP_GATE(0x80C21B34, &lit_3752);
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
|
||||||
/* 80C20A44-80C20C98 000184 0254+00 1/1 0/0 0/0 .text Check_LinkRideOn__12daObjIce_s_cF4cXyz */
|
/* 80C20A44-80C20C98 000184 0254+00 1/1 0/0 0/0 .text Check_LinkRideOn__12daObjIce_s_cF4cXyz */
|
||||||
|
// float register issues around abs/sin/cos
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
bool daObjIce_s_c::Check_LinkRideOn(cXyz param_1) {
|
||||||
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||||
|
s16 sVar8 = 0;
|
||||||
|
field_0x5e8 = 1;
|
||||||
|
s16 sVar7 = cLib_targetAngleY(¤t.pos, ¶m_1);
|
||||||
|
f32 dVar11 = current.pos.abs(param_1);
|
||||||
|
f32 cosangle = (f32)cM_scos(sVar7 - shape_angle.y);
|
||||||
|
cosangle = (-dVar11) * cosangle;
|
||||||
|
f32 sinangle = (f32)cM_ssin(sVar7 - shape_angle.y);
|
||||||
|
sinangle = dVar11 * sinangle;
|
||||||
|
RideOn_Angle(field_0x5da, cosangle, -0xaa0, 1000.0f * field_0x5c8.x);
|
||||||
|
RideOn_Angle(field_0x5de, sinangle, -0xaa0, 1000.0f * field_0x5c8.x);
|
||||||
|
field_0x5e8 = 1;
|
||||||
|
f32 speedF = fopAcM_GetSpeedF(player);
|
||||||
|
if (speedF > 0.0f) {
|
||||||
|
sVar8 = 98.0f * speedF;
|
||||||
|
}
|
||||||
|
field_0x5e0 = 1000.0f;
|
||||||
|
cLib_addCalc(&field_0x5a0, sVar8, 0.015f, 100.0f, 1000.0f);
|
||||||
|
cLib_chaseAngleS(&field_0x5ac, 0x120, 0x10);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
asm void daObjIce_s_c::Check_LinkRideOn(cXyz param_0) {
|
asm bool daObjIce_s_c::Check_LinkRideOn(cXyz param_0) {
|
||||||
nofralloc
|
nofralloc
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/Check_LinkRideOn__12daObjIce_s_cF4cXyz.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/Check_LinkRideOn__12daObjIce_s_cF4cXyz.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ############################################################################################## */
|
/* ############################################################################################## */
|
||||||
/* 80C21B38-80C21B3C 000040 0004+00 0/1 0/0 0/0 .rodata @3801 */
|
/* 80C21B38-80C21B3C 000040 0004+00 0/1 0/0 0/0 .rodata @3801 */
|
||||||
|
|
@ -281,38 +321,60 @@ static u8 data_80C21C38[4];
|
||||||
static u8 lit_3639[12];
|
static u8 lit_3639[12];
|
||||||
|
|
||||||
/* 80C21C48-80C21C58 000018 0010+00 4/4 0/0 0/0 .bss l_HIO */
|
/* 80C21C48-80C21C58 000018 0010+00 4/4 0/0 0/0 .bss l_HIO */
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
static daOBJ_ICE_S_HIO_c l_HIO;
|
||||||
|
#else
|
||||||
static u8 l_HIO[16];
|
static u8 l_HIO[16];
|
||||||
|
#endif
|
||||||
|
|
||||||
/* 80C20C98-80C20EC0 0003D8 0228+00 1/1 0/0 0/0 .text Check_RideOn__12daObjIce_s_cF4cXyz
|
/* 80C20C98-80C20EC0 0003D8 0228+00 1/1 0/0 0/0 .text Check_RideOn__12daObjIce_s_cF4cXyz
|
||||||
*/
|
*/
|
||||||
|
// float issues.
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
bool daObjIce_s_c::Check_RideOn(cXyz param_1) {
|
||||||
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||||
|
field_0x5e8 = 1;
|
||||||
|
s16 sVar7 = cLib_targetAngleY(¤t.pos, ¶m_1);
|
||||||
|
f32 dVar11 = current.pos.abs(param_1);
|
||||||
|
f32 cosangle = (f32)cM_scos(sVar7 - shape_angle.y);
|
||||||
|
cosangle = (-dVar11) * cosangle;
|
||||||
|
f32 sinangle = (f32)cM_ssin(sVar7 - shape_angle.y);
|
||||||
|
sinangle = dVar11 * sinangle;
|
||||||
|
f32 fVar1;
|
||||||
|
// !@bug fVar1 might be uninitialized
|
||||||
|
if (field_0x5c5 == 0xff) {
|
||||||
|
fVar1 = l_HIO.field_0x8;
|
||||||
|
}
|
||||||
|
RideOn_Angle(field_0x5da, cosangle, (fVar1 + 1024.0f) / field_0x5c8.x, 1000.0f * field_0x5c8.x);
|
||||||
|
RideOn_Angle(field_0x5de, sinangle, (fVar1 + 1024.0f) / field_0x5c8.x, 1000.0f * field_0x5c8.x);
|
||||||
|
field_0x5e8 = 1;
|
||||||
|
field_0x5e0 = 1000.0f;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
asm void daObjIce_s_c::Check_RideOn(cXyz param_0) {
|
asm bool daObjIce_s_c::Check_RideOn(cXyz param_0) {
|
||||||
nofralloc
|
nofralloc
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/Check_RideOn__12daObjIce_s_cF4cXyz.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/Check_RideOn__12daObjIce_s_cF4cXyz.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* 80C20EC0-80C20EEC 000600 002C+00 1/1 0/0 0/0 .text initBaseMtx__12daObjIce_s_cFv */
|
/* 80C20EC0-80C20EEC 000600 002C+00 1/1 0/0 0/0 .text initBaseMtx__12daObjIce_s_cFv */
|
||||||
#pragma push
|
void daObjIce_s_c::initBaseMtx() {
|
||||||
#pragma optimization_level 0
|
fopAcM_SetMtx(this, mModel->getBaseTRMtx());
|
||||||
#pragma optimizewithasm off
|
setBaseMtx();
|
||||||
asm void daObjIce_s_c::initBaseMtx() {
|
|
||||||
nofralloc
|
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/initBaseMtx__12daObjIce_s_cFv.s"
|
|
||||||
}
|
}
|
||||||
#pragma pop
|
|
||||||
|
|
||||||
/* 80C20EEC-80C20F48 00062C 005C+00 2/2 0/0 0/0 .text setBaseMtx__12daObjIce_s_cFv */
|
/* 80C20EEC-80C20F48 00062C 005C+00 2/2 0/0 0/0 .text setBaseMtx__12daObjIce_s_cFv */
|
||||||
#pragma push
|
void daObjIce_s_c::setBaseMtx() {
|
||||||
#pragma optimization_level 0
|
mDoMtx_stack_c::transS(current.pos);
|
||||||
#pragma optimizewithasm off
|
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||||
asm void daObjIce_s_c::setBaseMtx() {
|
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||||
nofralloc
|
cMtx_copy(mDoMtx_stack_c::get(), mBgMtx);
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/setBaseMtx__12daObjIce_s_cFv.s"
|
|
||||||
}
|
}
|
||||||
#pragma pop
|
|
||||||
|
|
||||||
/* ############################################################################################## */
|
/* ############################################################################################## */
|
||||||
/* 80C21B3C-80C21B40 000044 0004+00 0/1 0/0 0/0 .rodata @3905 */
|
/* 80C21B3C-80C21B40 000044 0004+00 0/1 0/0 0/0 .rodata @3905 */
|
||||||
|
|
@ -345,6 +407,46 @@ COMPILER_STRIP_GATE(0x80C21B48, &lit_3908);
|
||||||
|
|
||||||
/* 80C20F48-80C21234 000688 02EC+00 1/1 0/0 0/0 .text
|
/* 80C20F48-80C21234 000688 02EC+00 1/1 0/0 0/0 .text
|
||||||
* rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
|
* rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
|
||||||
|
// reg alloc
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
static void rideCallBack(dBgW* param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3) {
|
||||||
|
daObjIce_s_c* ice = (daObjIce_s_c*)param_2;
|
||||||
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||||
|
cXyz& playerPos = fopAcM_GetPosition(player);
|
||||||
|
cXyz* pVVar4 = player->getIronBallCenterPos();
|
||||||
|
|
||||||
|
// !@bug misplaced ! operator. This condition is probably always false
|
||||||
|
if (!fopAcM_GetName(param_3) == PROC_ALINK) {
|
||||||
|
ice->field_0x5d8 = 0x100;
|
||||||
|
ice->field_0x5a4 = -1.0f;
|
||||||
|
ice->field_0x5ac = 0x500;
|
||||||
|
} else {
|
||||||
|
ice->field_0x5a4 = -1.3f;
|
||||||
|
ice->Check_LinkRideOn(playerPos);
|
||||||
|
}
|
||||||
|
cXyz* icePos = &fopAcM_GetPosition(param_2);
|
||||||
|
if (pVVar4 != NULL && icePos != NULL && icePos->absXZ(*pVVar4) < ice->field_0x5c8.x * 600.0f) {
|
||||||
|
ice->field_0x5d8 = 0x300;
|
||||||
|
ice->field_0x5a4 = -11.0f;
|
||||||
|
ice->field_0x5ac = 0x1000;
|
||||||
|
ice->Check_RideOn(*icePos);
|
||||||
|
}
|
||||||
|
if (player->checkBootsOrArmorHeavy()) {
|
||||||
|
ice->field_0x5d8 = 0x300;
|
||||||
|
ice->field_0x5a4 = -11.0f;
|
||||||
|
ice->field_0x5ac = 0x1000;
|
||||||
|
ice->Check_RideOn(playerPos);
|
||||||
|
}
|
||||||
|
if (ice->field_0x5c5 == 0xff &&
|
||||||
|
fopAcM_GetName(param_3) == PROC_ALINK)
|
||||||
|
{
|
||||||
|
ice->field_0x5d8 = 0x300;
|
||||||
|
ice->field_0x5a4 = -11.0f;
|
||||||
|
ice->field_0x5ac = 0x1000;
|
||||||
|
ice->Check_RideOn(playerPos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
|
|
@ -353,9 +455,15 @@ static asm void rideCallBack(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* par
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* 80C21234-80C21260 000974 002C+00 1/0 0/0 0/0 .text daObjIce_s_Draw__FP12daObjIce_s_c
|
/* 80C21234-80C21260 000974 002C+00 1/0 0/0 0/0 .text daObjIce_s_Draw__FP12daObjIce_s_c
|
||||||
*/
|
*/
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
static int daObjIce_s_Draw(daObjIce_s_c* i_this) {
|
||||||
|
return i_this->MoveBGDraw();
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
|
|
@ -364,43 +472,65 @@ static asm void daObjIce_s_Draw(daObjIce_s_c* param_0) {
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/daObjIce_s_Draw__FP12daObjIce_s_c.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/daObjIce_s_Draw__FP12daObjIce_s_c.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* 80C21260-80C21280 0009A0 0020+00 1/0 0/0 0/0 .text daObjIce_s_Execute__FP12daObjIce_s_c */
|
/* 80C21260-80C21280 0009A0 0020+00 1/0 0/0 0/0 .text daObjIce_s_Execute__FP12daObjIce_s_c */
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
static int daObjIce_s_Execute(daObjIce_s_c* i_this) {
|
||||||
|
return i_this->MoveBGExecute();
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
static asm void daObjIce_s_Execute(daObjIce_s_c* param_0) {
|
static asm int daObjIce_s_Execute(daObjIce_s_c* param_0) {
|
||||||
nofralloc
|
nofralloc
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/daObjIce_s_Execute__FP12daObjIce_s_c.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/daObjIce_s_Execute__FP12daObjIce_s_c.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* 80C21280-80C21288 0009C0 0008+00 1/0 0/0 0/0 .text daObjIce_s_IsDelete__FP12daObjIce_s_c */
|
/* 80C21280-80C21288 0009C0 0008+00 1/0 0/0 0/0 .text daObjIce_s_IsDelete__FP12daObjIce_s_c */
|
||||||
static bool daObjIce_s_IsDelete(daObjIce_s_c* param_0) {
|
static int daObjIce_s_IsDelete(daObjIce_s_c* param_0) {
|
||||||
return true;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 80C21288-80C212AC 0009C8 0024+00 1/0 0/0 0/0 .text daObjIce_s_Delete__FP12daObjIce_s_c
|
/* 80C21288-80C212AC 0009C8 0024+00 1/0 0/0 0/0 .text daObjIce_s_Delete__FP12daObjIce_s_c
|
||||||
*/
|
*/
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
static int daObjIce_s_Delete(daObjIce_s_c* i_this) {
|
||||||
|
fopAcM_GetID(i_this);
|
||||||
|
i_this->MoveBGDelete();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
static asm void daObjIce_s_Delete(daObjIce_s_c* param_0) {
|
static asm int daObjIce_s_Delete(daObjIce_s_c* param_0) {
|
||||||
nofralloc
|
nofralloc
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/daObjIce_s_Delete__FP12daObjIce_s_c.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/daObjIce_s_Delete__FP12daObjIce_s_c.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* 80C212AC-80C212CC 0009EC 0020+00 1/0 0/0 0/0 .text daObjIce_s_Create__FP10fopAc_ac_c
|
/* 80C212AC-80C212CC 0009EC 0020+00 1/0 0/0 0/0 .text daObjIce_s_Create__FP10fopAc_ac_c
|
||||||
*/
|
*/
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
static int daObjIce_s_Create(fopAc_ac_c* i_this) {
|
||||||
|
fopAcM_GetID(i_this);
|
||||||
|
return static_cast<daObjIce_s_c*>(i_this)->create();
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
static asm void daObjIce_s_Create(fopAc_ac_c* param_0) {
|
static asm int daObjIce_s_Create(fopAc_ac_c* param_0) {
|
||||||
nofralloc
|
nofralloc
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/daObjIce_s_Create__FP10fopAc_ac_c.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/daObjIce_s_Create__FP10fopAc_ac_c.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ############################################################################################## */
|
/* ############################################################################################## */
|
||||||
/* 80C21B4C-80C21B50 000054 0004+00 0/1 0/0 0/0 .rodata @4000 */
|
/* 80C21B4C-80C21B50 000054 0004+00 0/1 0/0 0/0 .rodata @4000 */
|
||||||
|
|
@ -454,41 +584,78 @@ SECTION_DEAD static char const* const stringBase_80C21B94 = "Ice_s.dzb";
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
|
||||||
/* 80C212CC-80C2157C 000A0C 02B0+00 1/1 0/0 0/0 .text create__12daObjIce_s_cFv */
|
/* 80C212CC-80C2157C 000A0C 02B0+00 1/1 0/0 0/0 .text create__12daObjIce_s_cFv */
|
||||||
|
// Matches with literals/l_HIO/dBgS_MoveBgActor
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
int daObjIce_s_c::create() {
|
||||||
|
fopAcM_SetupActor(this, daObjIce_s_c);
|
||||||
|
int rv = dComIfG_resLoad(&mPhase, l_arcName);
|
||||||
|
if (rv == cPhs_COMPLEATE_e) {
|
||||||
|
int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "Ice_s.dzb");
|
||||||
|
JUT_ASSERT(185, dzb_id != -1);
|
||||||
|
rv = MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0x1440, NULL);
|
||||||
|
if (rv == cPhs_ERROR_e) {
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data_80C21C38[0] == 0) {
|
||||||
|
data_80C21C38[0] = 1;
|
||||||
|
field_0x640 = 1;
|
||||||
|
l_HIO.field_0x4 = -1;
|
||||||
|
}
|
||||||
|
field_0x5c5 = fopAcM_GetParam(this);
|
||||||
|
if (field_0x5c5 == 0) {
|
||||||
|
field_0x5c4 = 1;
|
||||||
|
}
|
||||||
|
if (field_0x5c4 != 0) {
|
||||||
|
if (dComIfGs_getCollectSmell() == SMELL_FISH) {
|
||||||
|
field_0x5c5 = 1;
|
||||||
|
} else {
|
||||||
|
field_0x5c5 = 0xff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
f32 dVar11 = field_0x5c8.x * 500.0f;
|
||||||
|
fopAcM_setCullSizeFar(this, 3.0f);
|
||||||
|
fopAcM_setCullSizeBox(this, -dVar11, -dVar11, -dVar11, dVar11, dVar11, dVar11);
|
||||||
|
u8 uVar7 = (fopAcM_GetParam(this) & 0xffff) >> 8;
|
||||||
|
if (uVar7 == 0xff) {
|
||||||
|
uVar7 = 0;
|
||||||
|
}
|
||||||
|
field_0x5c8.set(uVar7 + 1.0f, 1.0f, uVar7 + 1.0f);
|
||||||
|
field_0x5e6 = cM_rndFX(32000.0f);
|
||||||
|
cXyz cStack_c4(current.pos.x, current.pos.y + 300.0f, current.pos.z);
|
||||||
|
dBgS_ObjGndChk_Spl adStack_b8;
|
||||||
|
adStack_b8.SetPos(&cStack_c4);
|
||||||
|
field_0x5b0 = current.pos.x;
|
||||||
|
f32 dVar12 = field_0x5c8.x * 500.0f;
|
||||||
|
fopAcM_SetMin(this, -dVar12, -dVar12, -dVar12);
|
||||||
|
fopAcM_SetMax(this, dVar12, dVar12, dVar12);
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
asm void daObjIce_s_c::create() {
|
asm int daObjIce_s_c::create() {
|
||||||
nofralloc
|
nofralloc
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/create__12daObjIce_s_cFv.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/create__12daObjIce_s_cFv.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
/* ############################################################################################## */
|
|
||||||
/* 80C21B8C-80C21B8C 000094 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
|
||||||
#pragma push
|
|
||||||
#pragma force_active on
|
|
||||||
SECTION_DEAD static char const* const stringBase_80C21B9E = "Ice_s.bmd";
|
|
||||||
#pragma pop
|
|
||||||
|
|
||||||
/* 80C2157C-80C215F4 000CBC 0078+00 1/0 0/0 0/0 .text CreateHeap__12daObjIce_s_cFv */
|
/* 80C2157C-80C215F4 000CBC 0078+00 1/0 0/0 0/0 .text CreateHeap__12daObjIce_s_cFv */
|
||||||
#pragma push
|
int daObjIce_s_c::CreateHeap() {
|
||||||
#pragma optimization_level 0
|
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "Ice_s.bmd");
|
||||||
#pragma optimizewithasm off
|
JUT_ASSERT(157, modelData != 0);
|
||||||
asm void daObjIce_s_c::CreateHeap() {
|
mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||||
nofralloc
|
return mModel != NULL ? 1 : 0;
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/CreateHeap__12daObjIce_s_cFv.s"
|
|
||||||
}
|
}
|
||||||
#pragma pop
|
|
||||||
|
|
||||||
/* 80C215F4-80C21634 000D34 0040+00 1/0 0/0 0/0 .text Create__12daObjIce_s_cFv */
|
/* 80C215F4-80C21634 000D34 0040+00 1/0 0/0 0/0 .text Create__12daObjIce_s_cFv */
|
||||||
#pragma push
|
int daObjIce_s_c::Create() {
|
||||||
#pragma optimization_level 0
|
initBaseMtx();
|
||||||
#pragma optimizewithasm off
|
mpBgW->SetRideCallback(rideCallBack);
|
||||||
asm void daObjIce_s_c::Create() {
|
return cPhs_COMPLEATE_e;
|
||||||
nofralloc
|
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/func_80C215F4.s"
|
|
||||||
}
|
}
|
||||||
#pragma pop
|
|
||||||
|
|
||||||
/* ############################################################################################## */
|
/* ############################################################################################## */
|
||||||
/* 80C21B68-80C21B6C 000070 0004+00 0/1 0/0 0/0 .rodata @4060 */
|
/* 80C21B68-80C21B6C 000070 0004+00 0/1 0/0 0/0 .rodata @4060 */
|
||||||
|
|
@ -556,44 +723,68 @@ COMPILER_STRIP_GATE(0x80C21B88, &lit_4068);
|
||||||
|
|
||||||
/* 80C21634-80C21964 000D74 0330+00 1/0 0/0 0/0 .text Execute__12daObjIce_s_cFPPA3_A4_f
|
/* 80C21634-80C21964 000D74 0330+00 1/0 0/0 0/0 .text Execute__12daObjIce_s_cFPPA3_A4_f
|
||||||
*/
|
*/
|
||||||
|
// Matches with literals/l_HIO
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
int daObjIce_s_c::Execute(f32 (**param_1)[3][4]) {
|
||||||
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||||
|
fopAcM_GetPosition(player);
|
||||||
|
cXyz cStack_68(current.pos.x, current.pos.y + 300.0f, current.pos.z);
|
||||||
|
f32 dVar7 = l_HIO.field_0xc;
|
||||||
|
cLib_chaseF(&field_0x5a4, 0.0f, 0.04f);
|
||||||
|
cLib_chaseS(&field_0x5d8, 0, 0x100);
|
||||||
|
field_0x5d4 += 848.0f + 1.8f * field_0x5a0;
|
||||||
|
field_0x5d6 += 848.0f + 1.8f * field_0x5a0;
|
||||||
|
cLib_addCalc(¤t.pos.y,
|
||||||
|
field_0x5e0 + (field_0x5b0 + field_0x5a4 * (6.0f + dVar7) +
|
||||||
|
(5.0f * cM_ssin(field_0x5d6 + field_0x5e6))),
|
||||||
|
0.1f, 1000.0f, 0.1f);
|
||||||
|
cLib_addCalcAngleS(&shape_angle.x, field_0x5da + ((0.5f * field_0x5ac) * cM_ssin(0x2000 + field_0x5d4 + field_0x5e6 + field_0x5d8)), 2, 0x100, 1);
|
||||||
|
cLib_addCalcAngleS(&shape_angle.z, field_0x5de + ((0.5f * field_0x5ac) * cM_ssin(field_0x5d6 + field_0x5e6 + field_0x5d8)), 2, 0x100, 1);
|
||||||
|
if (field_0x5e8 == 0) {
|
||||||
|
cLib_addCalcAngleS(&field_0x5da, 0, 2, 0x100, 1);
|
||||||
|
cLib_addCalcAngleS(&field_0x5de, 0, 2, 0x100, 1);
|
||||||
|
cLib_addCalc(&field_0x5e0, 0, 0.2f, 100.0f, 0);
|
||||||
|
cLib_addCalc(&field_0x5a0, 0, 0.05f, 100.0f, 0);
|
||||||
|
field_0x5e4 = 0;
|
||||||
|
cLib_chaseAngleS(&field_0x5ac, 0x120, 0x10);
|
||||||
|
}
|
||||||
|
field_0x5e8 = 0;
|
||||||
|
*param_1 = &mBgMtx;
|
||||||
|
setBaseMtx();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
#pragma push
|
#pragma push
|
||||||
#pragma optimization_level 0
|
#pragma optimization_level 0
|
||||||
#pragma optimizewithasm off
|
#pragma optimizewithasm off
|
||||||
asm void daObjIce_s_c::Execute(f32 (**param_0)[3][4]) {
|
asm int daObjIce_s_c::Execute(f32 (**param_0)[3][4]) {
|
||||||
nofralloc
|
nofralloc
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/Execute__12daObjIce_s_cFPPA3_A4_f.s"
|
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/Execute__12daObjIce_s_cFPPA3_A4_f.s"
|
||||||
}
|
}
|
||||||
#pragma pop
|
#pragma pop
|
||||||
|
#endif
|
||||||
|
|
||||||
/* 80C21964-80C21A08 0010A4 00A4+00 1/0 0/0 0/0 .text Draw__12daObjIce_s_cFv */
|
/* 80C21964-80C21A08 0010A4 00A4+00 1/0 0/0 0/0 .text Draw__12daObjIce_s_cFv */
|
||||||
#pragma push
|
int daObjIce_s_c::Draw() {
|
||||||
#pragma optimization_level 0
|
g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr);
|
||||||
#pragma optimizewithasm off
|
g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
|
||||||
asm void daObjIce_s_c::Draw() {
|
dComIfGd_setListDarkBG();
|
||||||
nofralloc
|
mDoExt_modelUpdateDL(mModel);
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/Draw__12daObjIce_s_cFv.s"
|
dComIfGd_setList();
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
#pragma pop
|
|
||||||
|
|
||||||
/* 80C21A08-80C21A60 001148 0058+00 1/0 0/0 0/0 .text Delete__12daObjIce_s_cFv */
|
/* 80C21A08-80C21A60 001148 0058+00 1/0 0/0 0/0 .text Delete__12daObjIce_s_cFv */
|
||||||
#pragma push
|
int daObjIce_s_c::Delete() {
|
||||||
#pragma optimization_level 0
|
dComIfG_resDelete(&mPhase, l_arcName);
|
||||||
#pragma optimizewithasm off
|
if (field_0x640 != 0) {
|
||||||
asm void daObjIce_s_c::Delete() {
|
data_80C21C38[0] = 0;
|
||||||
nofralloc
|
}
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/Delete__12daObjIce_s_cFv.s"
|
return 1;
|
||||||
}
|
}
|
||||||
#pragma pop
|
|
||||||
|
|
||||||
/* 80C21A60-80C21AA8 0011A0 0048+00 2/1 0/0 0/0 .text __dt__17daOBJ_ICE_S_HIO_cFv */
|
/* 80C21A60-80C21AA8 0011A0 0048+00 2/1 0/0 0/0 .text __dt__17daOBJ_ICE_S_HIO_cFv */
|
||||||
#pragma push
|
daOBJ_ICE_S_HIO_c::~daOBJ_ICE_S_HIO_c() {}
|
||||||
#pragma optimization_level 0
|
|
||||||
#pragma optimizewithasm off
|
|
||||||
asm daOBJ_ICE_S_HIO_c::~daOBJ_ICE_S_HIO_c() {
|
|
||||||
nofralloc
|
|
||||||
#include "asm/rel/d/a/obj/d_a_obj_ice_s/d_a_obj_ice_s/__dt__17daOBJ_ICE_S_HIO_cFv.s"
|
|
||||||
}
|
|
||||||
#pragma pop
|
|
||||||
|
|
||||||
/* 80C21AA8-80C21AE4 0011E8 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_ice_s_cpp */
|
/* 80C21AA8-80C21AE4 0011E8 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_ice_s_cpp */
|
||||||
#pragma push
|
#pragma push
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue