diff --git a/asm/clib.s b/asm/clib.s index 37451d1306a..8cf79179ee6 100644 --- a/asm/clib.s +++ b/asm/clib.s @@ -9069,7 +9069,7 @@ lbl_80369368: /* 80369378 003662B8 FC 00 08 2A */ fadd f0, f0, f1 /* 8036937C 003662BC FF E2 00 32 */ fmul f31, f2, f0 /* 80369380 003662C0 FC 20 F8 90 */ fmr f1, f31 -/* 80369384 003662C4 48 00 36 D1 */ bl func_8036CA54 +/* 80369384 003662C4 48 00 36 D1 */ bl sqrt /* 80369388 003662C8 C8 62 CC C0 */ lfd f3, lbl_804566C0-_SDA2_BASE_(r2) /* 8036938C 003662CC C8 42 CC B8 */ lfd f2, lbl_804566B8-_SDA2_BASE_(r2) /* 80369390 003662D0 C8 02 CC B0 */ lfd f0, lbl_804566B0-_SDA2_BASE_(r2) @@ -9105,7 +9105,7 @@ lbl_803693FC: /* 80369404 00366344 FC 00 08 28 */ fsub f0, f0, f1 /* 80369408 00366348 FF E2 00 32 */ fmul f31, f2, f0 /* 8036940C 0036634C FC 20 F8 90 */ fmr f1, f31 -/* 80369410 00366350 48 00 36 45 */ bl func_8036CA54 +/* 80369410 00366350 48 00 36 45 */ bl sqrt /* 80369414 00366354 C8 42 CC C0 */ lfd f2, lbl_804566C0-_SDA2_BASE_(r2) /* 80369418 00366358 38 00 00 00 */ li r0, 0 /* 8036941C 0036635C C8 02 CC B8 */ lfd f0, lbl_804566B8-_SDA2_BASE_(r2) @@ -9249,7 +9249,7 @@ lbl_803695C0: /* 80369620 00366560 FC 1F 18 7A */ fmadd f0, f31, f1, f3 /* 80369624 00366564 FC 20 F8 90 */ fmr f1, f31 /* 80369628 00366568 FF DF 00 32 */ fmul f30, f31, f0 -/* 8036962C 0036656C 48 00 34 29 */ bl func_8036CA54 +/* 8036962C 0036656C 48 00 34 29 */ bl sqrt /* 80369630 00366570 3C 60 3F EF */ lis r3, 0x3FEF3333@ha /* 80369634 00366574 38 03 33 33 */ addi r0, r3, 0x3FEF3333@l /* 80369638 00366578 7C 1E 00 00 */ cmpw r30, r0 @@ -10051,7 +10051,7 @@ lbl_8036A0C4: /* 8036A0D0 00367010 2C 00 00 00 */ cmpwi r0, 0 /* 8036A0D4 00367014 41 80 00 10 */ blt lbl_8036A0E4 /* 8036A0D8 00367018 C8 21 00 08 */ lfd f1, 8(r1) -/* 8036A0DC 0036701C 48 00 29 79 */ bl func_8036CA54 +/* 8036A0DC 0036701C 48 00 29 79 */ bl sqrt /* 8036A0E0 00367020 48 00 05 F0 */ b lbl_8036A6D0 lbl_8036A0E4: /* 8036A0E4 00367024 C8 01 00 08 */ lfd f0, 8(r1) @@ -13038,8 +13038,8 @@ acosf: /* 8036CA4C 0036998C 38 21 00 10 */ addi r1, r1, 0x10 /* 8036CA50 00369990 4E 80 00 20 */ blr -.global func_8036CA54 -func_8036CA54: +.global sqrt +sqrt: /* 8036CA54 00369994 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8036CA58 00369998 7C 08 02 A6 */ mflr r0 /* 8036CA5C 0036999C 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/asm/d/cam/d_cam_param.s b/asm/d/cam/d_cam_param.s index c642583d7fc..a8e907009da 100644 --- a/asm/d/cam/d_cam_param.s +++ b/asm/d/cam/d_cam_param.s @@ -44,7 +44,7 @@ lbl_8008818C: /* 800881C4 00085104 C8 02 8D F0 */ lfd f0, lbl_804527F0-_SDA2_BASE_(r2) /* 800881C8 00085108 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 800881CC 0008510C 40 81 00 0C */ ble lbl_800881D8 -/* 800881D0 00085110 48 2E 48 85 */ bl func_8036CA54 +/* 800881D0 00085110 48 2E 48 85 */ bl sqrt /* 800881D4 00085114 48 00 00 08 */ b lbl_800881DC lbl_800881D8: /* 800881D8 00085118 FC 20 00 90 */ fmr f1, f0 @@ -213,7 +213,7 @@ dCamMath_NS_xyzHorizontalDistance: /* 80088410 00085350 FC 22 00 B2 */ fmul f1, f2, f2 /* 80088414 00085354 FC 00 00 32 */ fmul f0, f0, f0 /* 80088418 00085358 FC 21 00 2A */ fadd f1, f1, f0 -/* 8008841C 0008535C 48 2E 46 39 */ bl func_8036CA54 +/* 8008841C 0008535C 48 2E 46 39 */ bl sqrt /* 80088420 00085360 FC 20 08 18 */ frsp f1, f1 /* 80088424 00085364 80 01 00 14 */ lwz r0, 0x14(r1) /* 80088428 00085368 7C 08 03 A6 */ mtlr r0 diff --git a/include/d/d_item/d_item/d_item.h b/include/d/d_item/d_item/d_item.h index b703c8ecb44..5bac0b48384 100644 --- a/include/d/d_item/d_item/d_item.h +++ b/include/d/d_item/d_item/d_item.h @@ -5,6 +5,8 @@ #include "global.h" int checkItemGet(u8, int); +u32 check_itemno(int param1); +BOOL isHeart(u8 item_no); extern int (*item_func_ptr[256])(void); extern int (*item_getcheck_func_ptr[256])(void); diff --git a/include/d/d_kankyo/d_kankyo_rain/asm/func_8005B660.s b/include/d/d_kankyo/d_kankyo_rain/asm/func_8005B660.s index 8f247072296..0ae2c02ae9b 100644 --- a/include/d/d_kankyo/d_kankyo_rain/asm/func_8005B660.s +++ b/include/d/d_kankyo/d_kankyo_rain/asm/func_8005B660.s @@ -13,7 +13,7 @@ /* 8005B690 000585D0 FC 00 00 32 */ fmul f0, f0, f0 /* 8005B694 000585D4 FC 01 00 2A */ fadd f0, f1, f0 /* 8005B698 000585D8 FC 22 00 2A */ fadd f1, f2, f0 -/* 8005B69C 000585DC 48 31 13 B9 */ bl func_8036CA54 +/* 8005B69C 000585DC 48 31 13 B9 */ bl sqrt /* 8005B6A0 000585E0 C8 02 87 B0 */ lfd f0, lbl_804521B0-_SDA2_BASE_(r2) /* 8005B6A4 000585E4 FC 00 08 00 */ fcmpu cr0, f0, f1 /* 8005B6A8 000585E8 41 82 00 38 */ beq lbl_8005B6E0 diff --git a/include/f/f_op/f_op_actor.h b/include/f/f_op/f_op_actor.h index 70c3e887592..084312a0803 100644 --- a/include/f/f_op/f_op_actor.h +++ b/include/f/f_op/f_op_actor.h @@ -10,10 +10,15 @@ class fopAc_ac_c : public base_process_class { public: /* 0x0B8 */ u8 unk_0x0B8[0xF0 - 0xB8]; /* 0x0F0 */ JKRSolidHeap* unk_0x0F0; - /* 0x0F4 */ u8 unk_0x0F4[0x4D0 - 0xF4]; + /* 0x0F4 */ u8 unk_0x0F4[0x496 - 0xF4]; + /* 0x496 */ u8 unk_0x496; + /* 0x497 */ u8 unk_0x497[0x499 - 0x497]; + /* 0x499 */ s8 unk_0x499; + /* 0x497 */ u8 unk_0x49A[0x4D0 - 0x49A]; /* 0x4D0 */ cXyz mPosition; /* 0x4DC */ csXyz mAngle; - /* 0x4E2 */ u8 unk_0x4E2[0x4E6 - 0x4E2]; + /* 0x4E2 */ s8 mRoomNo; + /* 0x4E3 */ u8 unk_0x4E3[0x4E6 - 0x4E3]; /* 0x4E6 */ s16 unk_0x4E6; /* 0x4E8 */ u8 unk_0x4E8[0x4F8 - 0x4E8]; /* 0x4F8 */ cXyz mSpeed; diff --git a/include/f/f_op/f_op_actor_mng.h b/include/f/f_op/f_op_actor_mng.h index f3f36fd25c7..27e73246232 100644 --- a/include/f/f_op/f_op_actor_mng.h +++ b/include/f/f_op/f_op_actor_mng.h @@ -58,6 +58,10 @@ struct DOUBLE_POS { double x, y, z; }; +inline s32 fopAcM_GetRoomNo(const fopAc_ac_c* pActor) { + return pActor->mRoomNo; +} + void* fopAcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3, void* pData); void fopAcM_setStageLayer(void*); int fopAcM_setRoomLayer(void*, int); @@ -132,15 +136,14 @@ s32 fopAcM_createItemFromTable(const cXyz*, int, int, int, const csXyz*, int, co s32 fopAcM_createDemoItem(const cXyz*, int, int, const csXyz*, int, const cXyz*, u8); s32 fopAcM_createItemForBoss(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32, int); s32 fopAcM_createItemForMidBoss(const cXyz*, int, int, const csXyz*, const cXyz*, int, int); -s32 fopAcM_createItemForDirectGet(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32); -s32 fopAcM_createItemForSimpleDemo(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32); +void* fopAcM_createItemForDirectGet(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32); +void* fopAcM_createItemForSimpleDemo(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32); s32 fopAcM_createItem(const cXyz*, int, int, int, const csXyz*, const cXyz*, int); -s32 fopAcM_fastCreateItem2(const cXyz*, int, int, int, int, const csXyz*, const cXyz*); -s32 fopAcM_fastCreateItem(const cXyz*, int, int, const csXyz*, const cXyz*, f32*, f32*, int, int, - createFunc); +void* fopAcM_fastCreateItem2(const cXyz*, int, int, int, int, const csXyz*, const cXyz*); +void* fopAcM_fastCreateItem(const cXyz*, int, int, const csXyz*, const cXyz*, f32*, f32*, int, int, + createFunc); s32 fopAcM_createBokkuri(u16, const cXyz*, int, int, int, const cXyz*, int, int); s32 fopAcM_createWarpHole(const cXyz*, const csXyz*, int, u8, u8, u8); -s32 enemySearchJugge(void*, void*); s32 fopAcM_myRoomSearchEnemy(s8); s32 fopAcM_createDisappear(const fopAc_ac_c*, const cXyz*, u8, u8, u8); s32 fopAcM_setCarryNow(fopAc_ac_c*, int); @@ -237,7 +240,6 @@ void fopAcM_setEffectMtx__FPC10fopAc_ac_cPC12J3DModelData(void); void fopAcM_setRoomLayer__FPvi(void); void fopAcM_setStageLayer__FPv(void); void waterCheck__11fopAcM_wt_cFPC4cXyz(void); -void fopAc_IsActor(void); void fopScnM_SearchByID(void); void fpoAcM_relativePos__FPC10fopAc_ac_cPC4cXyzP4cXyz(void); void fopAcM_SearchByName__FsPP10fopAc_ac_c(void); diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C078.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C078.s deleted file mode 100644 index 97c3831b582..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C078.s +++ /dev/null @@ -1,25 +0,0 @@ -/* 8001C078 00018FB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001C07C 00018FBC 7C 08 02 A6 */ mflr r0 -/* 8001C080 00018FC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001C084 00018FC4 7C 6B 1B 78 */ mr r11, r3 -/* 8001C088 00018FC8 7C CA 33 78 */ mr r10, r6 -/* 8001C08C 00018FCC 2C 04 00 FF */ cmpwi r4, 0xff -/* 8001C090 00018FD0 40 82 00 0C */ bne lbl_8001C09C -/* 8001C094 00018FD4 38 60 FF FF */ li r3, -1 -/* 8001C098 00018FD8 48 00 00 2C */ b lbl_8001C0C4 -lbl_8001C09C: -/* 8001C09C 00018FDC 38 60 02 1D */ li r3, 0x21d -/* 8001C0A0 00018FE0 54 A0 44 6E */ rlwinm r0, r5, 8, 0x11, 0x17 -/* 8001C0A4 00018FE4 50 80 06 3E */ rlwimi r0, r4, 0, 0x18, 0x1f -/* 8001C0A8 00018FE8 7C 04 03 78 */ mr r4, r0 -/* 8001C0AC 00018FEC 51 24 82 1E */ rlwimi r4, r9, 0x10, 8, 0xf -/* 8001C0B0 00018FF0 7D 65 5B 78 */ mr r5, r11 -/* 8001C0B4 00018FF4 7C E6 3B 78 */ mr r6, r7 -/* 8001C0B8 00018FF8 7D 47 53 78 */ mr r7, r10 -/* 8001C0BC 00018FFC 39 20 FF FF */ li r9, -1 -/* 8001C0C0 00019000 4B FF DC D9 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -lbl_8001C0C4: -/* 8001C0C4 00019004 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001C0C8 00019008 7C 08 03 A6 */ mtlr r0 -/* 8001C0CC 0001900C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8001C0D0 00019010 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C0D4.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C0D4.s deleted file mode 100644 index 0483c801664..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C0D4.s +++ /dev/null @@ -1,43 +0,0 @@ -/* 8001C0D4 00019014 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8001C0D8 00019018 7C 08 02 A6 */ mflr r0 -/* 8001C0DC 0001901C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8001C0E0 00019020 DB E1 00 18 */ stfd f31, 0x18(r1) -/* 8001C0E4 00019024 DB C1 00 10 */ stfd f30, 0x10(r1) -/* 8001C0E8 00019028 7C 6C 1B 78 */ mr r12, r3 -/* 8001C0EC 0001902C 7C AB 2B 78 */ mr r11, r5 -/* 8001C0F0 00019030 7C CA 33 78 */ mr r10, r6 -/* 8001C0F4 00019034 7C E9 3B 78 */ mr r9, r7 -/* 8001C0F8 00019038 FF C0 08 90 */ fmr f30, f1 -/* 8001C0FC 0001903C FF E0 10 90 */ fmr f31, f2 -/* 8001C100 00019040 38 00 00 00 */ li r0, 0 -/* 8001C104 00019044 90 01 00 08 */ stw r0, 8(r1) -/* 8001C108 00019048 38 60 02 1B */ li r3, 0x21b -/* 8001C10C 0001904C 55 00 40 2E */ slwi r0, r8, 8 -/* 8001C110 00019050 64 05 FF FF */ oris r5, r0, 0xffff -/* 8001C114 00019054 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 8001C118 00019058 7C A4 03 78 */ or r4, r5, r0 -/* 8001C11C 0001905C 7D 85 63 78 */ mr r5, r12 -/* 8001C120 00019060 7D 66 5B 78 */ mr r6, r11 -/* 8001C124 00019064 7D 47 53 78 */ mr r7, r10 -/* 8001C128 00019068 7D 28 4B 78 */ mr r8, r9 -/* 8001C12C 0001906C 39 20 FF FF */ li r9, -1 -/* 8001C130 00019070 39 40 00 00 */ li r10, 0 -/* 8001C134 00019074 4B FF DC D1 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv -/* 8001C138 00019078 28 03 00 00 */ cmplwi r3, 0 -/* 8001C13C 0001907C 41 82 00 0C */ beq lbl_8001C148 -/* 8001C140 00019080 D3 C3 05 2C */ stfs f30, 0x52c(r3) -/* 8001C144 00019084 D3 E3 04 FC */ stfs f31, 0x4fc(r3) -lbl_8001C148: -/* 8001C148 00019088 28 03 00 00 */ cmplwi r3, 0 -/* 8001C14C 0001908C 41 82 00 0C */ beq lbl_8001C158 -/* 8001C150 00019090 80 63 00 04 */ lwz r3, 4(r3) -/* 8001C154 00019094 48 00 00 08 */ b lbl_8001C15C -lbl_8001C158: -/* 8001C158 00019098 38 60 FF FF */ li r3, -1 -lbl_8001C15C: -/* 8001C15C 0001909C CB E1 00 18 */ lfd f31, 0x18(r1) -/* 8001C160 000190A0 CB C1 00 10 */ lfd f30, 0x10(r1) -/* 8001C164 000190A4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8001C168 000190A8 7C 08 03 A6 */ mtlr r0 -/* 8001C16C 000190AC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8001C170 000190B0 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C174.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C174.s deleted file mode 100644 index deb24f2eaf4..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C174.s +++ /dev/null @@ -1,17 +0,0 @@ -/* 8001C174 000190B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001C178 000190B8 7C 08 02 A6 */ mflr r0 -/* 8001C17C 000190BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001C180 000190C0 7C A6 2B 78 */ mr r6, r5 -/* 8001C184 000190C4 7C E8 3B 78 */ mr r8, r7 -/* 8001C188 000190C8 80 0D 8B E0 */ lwz r0, lbl_80451160-_SDA_BASE_(r13) -/* 8001C18C 000190CC 90 01 00 08 */ stw r0, 8(r1) -/* 8001C190 000190D0 A0 0D 8B E4 */ lhz r0, lbl_80451164-_SDA_BASE_(r13) -/* 8001C194 000190D4 B0 01 00 0C */ sth r0, 0xc(r1) -/* 8001C198 000190D8 7D 25 4B 78 */ mr r5, r9 -/* 8001C19C 000190DC 38 E1 00 08 */ addi r7, r1, 8 -/* 8001C1A0 000190E0 39 20 00 06 */ li r9, 6 -/* 8001C1A4 000190E4 48 00 00 9D */ bl fopAcM_createItem__FPC4cXyziiiPC5csXyzPC4cXyzi -/* 8001C1A8 000190E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001C1AC 000190EC 7C 08 03 A6 */ mtlr r0 -/* 8001C1B0 000190F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8001C1B4 000190F4 4E 80 00 20 */ blr diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C1B8.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C1B8.s deleted file mode 100644 index 9c614cbd692..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C1B8.s +++ /dev/null @@ -1,17 +0,0 @@ -/* 8001C1B8 000190F8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8001C1BC 000190FC 7C 08 02 A6 */ mflr r0 -/* 8001C1C0 00019100 90 01 00 24 */ stw r0, 0x24(r1) -/* 8001C1C4 00019104 D0 21 00 10 */ stfs f1, 0x10(r1) -/* 8001C1C8 00019108 D0 41 00 14 */ stfs f2, 0x14(r1) -/* 8001C1CC 0001910C 38 00 00 07 */ li r0, 7 -/* 8001C1D0 00019110 90 01 00 08 */ stw r0, 8(r1) -/* 8001C1D4 00019114 38 00 00 00 */ li r0, 0 -/* 8001C1D8 00019118 90 01 00 0C */ stw r0, 0xc(r1) -/* 8001C1DC 0001911C 39 01 00 10 */ addi r8, r1, 0x10 -/* 8001C1E0 00019120 39 21 00 14 */ addi r9, r1, 0x14 -/* 8001C1E4 00019124 39 40 FF FF */ li r10, -1 -/* 8001C1E8 00019128 48 00 03 C9 */ bl fopAcM_fastCreateItem__FPC4cXyziiPC5csXyzPC4cXyzPfPfiiPFPv_i -/* 8001C1EC 0001912C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8001C1F0 00019130 7C 08 03 A6 */ mtlr r0 -/* 8001C1F4 00019134 38 21 00 20 */ addi r1, r1, 0x20 -/* 8001C1F8 00019138 4E 80 00 20 */ blr diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C1FC.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C1FC.s deleted file mode 100644 index 8b79358a993..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C1FC.s +++ /dev/null @@ -1,17 +0,0 @@ -/* 8001C1FC 0001913C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8001C200 00019140 7C 08 02 A6 */ mflr r0 -/* 8001C204 00019144 90 01 00 24 */ stw r0, 0x24(r1) -/* 8001C208 00019148 D0 21 00 10 */ stfs f1, 0x10(r1) -/* 8001C20C 0001914C D0 41 00 14 */ stfs f2, 0x14(r1) -/* 8001C210 00019150 38 00 00 04 */ li r0, 4 -/* 8001C214 00019154 90 01 00 08 */ stw r0, 8(r1) -/* 8001C218 00019158 38 00 00 00 */ li r0, 0 -/* 8001C21C 0001915C 90 01 00 0C */ stw r0, 0xc(r1) -/* 8001C220 00019160 39 01 00 10 */ addi r8, r1, 0x10 -/* 8001C224 00019164 39 21 00 14 */ addi r9, r1, 0x14 -/* 8001C228 00019168 39 40 FF FF */ li r10, -1 -/* 8001C22C 0001916C 48 00 03 85 */ bl fopAcM_fastCreateItem__FPC4cXyziiPC5csXyzPC4cXyzPfPfiiPFPv_i -/* 8001C230 00019170 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8001C234 00019174 7C 08 03 A6 */ mtlr r0 -/* 8001C238 00019178 38 21 00 20 */ addi r1, r1, 0x20 -/* 8001C23C 0001917C 4E 80 00 20 */ blr diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C240.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C240.s deleted file mode 100644 index 7b9bb216c81..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C240.s +++ /dev/null @@ -1,114 +0,0 @@ -/* 8001C240 00019180 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8001C244 00019184 7C 08 02 A6 */ mflr r0 -/* 8001C248 00019188 90 01 00 44 */ stw r0, 0x44(r1) -/* 8001C24C 0001918C 39 61 00 40 */ addi r11, r1, 0x40 -/* 8001C250 00019190 48 34 5F 7D */ bl _savegpr_25 -/* 8001C254 00019194 7C 7B 1B 78 */ mr r27, r3 -/* 8001C258 00019198 7C 9C 23 78 */ mr r28, r4 -/* 8001C25C 0001919C 7C B9 2B 78 */ mr r25, r5 -/* 8001C260 000191A0 7C DD 33 78 */ mr r29, r6 -/* 8001C264 000191A4 7C FE 3B 78 */ mr r30, r7 -/* 8001C268 000191A8 7D 1F 43 78 */ mr r31, r8 -/* 8001C26C 000191AC 7D 3A 4B 78 */ mr r26, r9 -/* 8001C270 000191B0 2C 1C 00 FF */ cmpwi r28, 0xff -/* 8001C274 000191B4 40 82 00 0C */ bne lbl_8001C280 -/* 8001C278 000191B8 38 60 FF FF */ li r3, -1 -/* 8001C27C 000191BC 48 00 01 4C */ b lbl_8001C3C8 -lbl_8001C280: -/* 8001C280 000191C0 80 0D 8B E0 */ lwz r0, lbl_80451160-_SDA_BASE_(r13) -/* 8001C284 000191C4 90 01 00 08 */ stw r0, 8(r1) -/* 8001C288 000191C8 A0 0D 8B E4 */ lhz r0, lbl_80451164-_SDA_BASE_(r13) -/* 8001C28C 000191CC B0 01 00 0C */ sth r0, 0xc(r1) -/* 8001C290 000191D0 28 1E 00 00 */ cmplwi r30, 0 -/* 8001C294 000191D4 41 82 00 20 */ beq lbl_8001C2B4 -/* 8001C298 000191D8 A8 1E 00 00 */ lha r0, 0(r30) -/* 8001C29C 000191DC B0 01 00 08 */ sth r0, 8(r1) -/* 8001C2A0 000191E0 A8 1E 00 02 */ lha r0, 2(r30) -/* 8001C2A4 000191E4 B0 01 00 0A */ sth r0, 0xa(r1) -/* 8001C2A8 000191E8 A8 1E 00 04 */ lha r0, 4(r30) -/* 8001C2AC 000191EC B0 01 00 0C */ sth r0, 0xc(r1) -/* 8001C2B0 000191F0 48 00 00 1C */ b lbl_8001C2CC -lbl_8001C2B4: -/* 8001C2B4 000191F4 C0 22 82 2C */ lfs f1, lbl_80451C2C-_SDA2_BASE_(r2) -/* 8001C2B8 000191F8 48 24 B6 D5 */ bl cM_rndFX__Ff -/* 8001C2BC 000191FC FC 00 08 1E */ fctiwz f0, f1 -/* 8001C2C0 00019200 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8001C2C4 00019204 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001C2C8 00019208 B0 01 00 0A */ sth r0, 0xa(r1) -lbl_8001C2CC: -/* 8001C2CC 0001920C 38 00 00 FF */ li r0, 0xff -/* 8001C2D0 00019210 B0 01 00 0C */ sth r0, 0xc(r1) -/* 8001C2D4 00019214 7F 83 E3 78 */ mr r3, r28 -/* 8001C2D8 00019218 48 07 F4 ED */ bl check_itemno__Fi -/* 8001C2DC 0001921C 57 44 C1 0E */ rlwinm r4, r26, 0x18, 4, 7 -/* 8001C2E0 00019220 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8001C2E4 00019224 53 20 44 2E */ rlwimi r0, r25, 8, 0x10, 0x17 -/* 8001C2E8 00019228 64 00 00 FF */ oris r0, r0, 0xff -/* 8001C2EC 0001922C 7C 9A 03 78 */ or r26, r4, r0 -/* 8001C2F0 00019230 2C 1C 00 20 */ cmpwi r28, 0x20 -/* 8001C2F4 00019234 41 82 00 B4 */ beq lbl_8001C3A8 -/* 8001C2F8 00019238 40 80 00 14 */ bge lbl_8001C30C -/* 8001C2FC 0001923C 2C 1C 00 1E */ cmpwi r28, 0x1e -/* 8001C300 00019240 41 82 00 18 */ beq lbl_8001C318 -/* 8001C304 00019244 40 80 00 5C */ bge lbl_8001C360 -/* 8001C308 00019248 48 00 00 A0 */ b lbl_8001C3A8 -lbl_8001C30C: -/* 8001C30C 0001924C 2C 1C 00 23 */ cmpwi r28, 0x23 -/* 8001C310 00019250 40 80 00 98 */ bge lbl_8001C3A8 -/* 8001C314 00019254 48 00 00 28 */ b lbl_8001C33C -lbl_8001C318: -/* 8001C318 00019258 38 60 01 3F */ li r3, 0x13f -/* 8001C31C 0001925C 38 80 FF FF */ li r4, -1 -/* 8001C320 00019260 7F 65 DB 78 */ mr r5, r27 -/* 8001C324 00019264 7F A6 EB 78 */ mr r6, r29 -/* 8001C328 00019268 7F C7 F3 78 */ mr r7, r30 -/* 8001C32C 0001926C 7F E8 FB 78 */ mr r8, r31 -/* 8001C330 00019270 39 20 FF FF */ li r9, -1 -/* 8001C334 00019274 4B FF DA 65 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -/* 8001C338 00019278 48 00 00 90 */ b lbl_8001C3C8 -lbl_8001C33C: -/* 8001C33C 0001927C 38 60 02 1B */ li r3, 0x21b -/* 8001C340 00019280 7F 44 D3 78 */ mr r4, r26 -/* 8001C344 00019284 7F 65 DB 78 */ mr r5, r27 -/* 8001C348 00019288 7F A6 EB 78 */ mr r6, r29 -/* 8001C34C 0001928C 7F C7 F3 78 */ mr r7, r30 -/* 8001C350 00019290 7F E8 FB 78 */ mr r8, r31 -/* 8001C354 00019294 39 20 FF FF */ li r9, -1 -/* 8001C358 00019298 4B FF DA 41 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -/* 8001C35C 0001929C 48 00 00 6C */ b lbl_8001C3C8 -lbl_8001C360: -/* 8001C360 000192A0 3B 80 00 00 */ li r28, 0 -lbl_8001C364: -/* 8001C364 000192A4 38 60 02 18 */ li r3, 0x218 -/* 8001C368 000192A8 7F 44 D3 78 */ mr r4, r26 -/* 8001C36C 000192AC 7F 65 DB 78 */ mr r5, r27 -/* 8001C370 000192B0 7F A6 EB 78 */ mr r6, r29 -/* 8001C374 000192B4 38 E1 00 08 */ addi r7, r1, 8 -/* 8001C378 000192B8 7F E8 FB 78 */ mr r8, r31 -/* 8001C37C 000192BC 39 20 FF FF */ li r9, -1 -/* 8001C380 000192C0 4B FF DA 19 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -/* 8001C384 000192C4 C0 22 82 2C */ lfs f1, lbl_80451C2C-_SDA2_BASE_(r2) -/* 8001C388 000192C8 48 24 B6 05 */ bl cM_rndFX__Ff -/* 8001C38C 000192CC FC 00 08 1E */ fctiwz f0, f1 -/* 8001C390 000192D0 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8001C394 000192D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001C398 000192D8 B0 01 00 0A */ sth r0, 0xa(r1) -/* 8001C39C 000192DC 3B 9C 00 01 */ addi r28, r28, 1 -/* 8001C3A0 000192E0 2C 1C 00 02 */ cmpwi r28, 2 -/* 8001C3A4 000192E4 41 80 FF C0 */ blt lbl_8001C364 -lbl_8001C3A8: -/* 8001C3A8 000192E8 38 60 02 18 */ li r3, 0x218 -/* 8001C3AC 000192EC 7F 44 D3 78 */ mr r4, r26 -/* 8001C3B0 000192F0 7F 65 DB 78 */ mr r5, r27 -/* 8001C3B4 000192F4 7F A6 EB 78 */ mr r6, r29 -/* 8001C3B8 000192F8 38 E1 00 08 */ addi r7, r1, 8 -/* 8001C3BC 000192FC 7F E8 FB 78 */ mr r8, r31 -/* 8001C3C0 00019300 39 20 FF FF */ li r9, -1 -/* 8001C3C4 00019304 4B FF D9 D5 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -lbl_8001C3C8: -/* 8001C3C8 00019308 39 61 00 40 */ addi r11, r1, 0x40 -/* 8001C3CC 0001930C 48 34 5E 4D */ bl _restgpr_25 -/* 8001C3D0 00019310 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8001C3D4 00019314 7C 08 03 A6 */ mtlr r0 -/* 8001C3D8 00019318 38 21 00 40 */ addi r1, r1, 0x40 -/* 8001C3DC 0001931C 4E 80 00 20 */ blr diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C3E0.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C3E0.s deleted file mode 100644 index 6271354063b..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C3E0.s +++ /dev/null @@ -1,126 +0,0 @@ -/* 8001C3E0 00019320 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8001C3E4 00019324 7C 08 02 A6 */ mflr r0 -/* 8001C3E8 00019328 90 01 00 44 */ stw r0, 0x44(r1) -/* 8001C3EC 0001932C 39 61 00 40 */ addi r11, r1, 0x40 -/* 8001C3F0 00019330 48 34 5D DD */ bl _savegpr_25 -/* 8001C3F4 00019334 7C 7B 1B 78 */ mr r27, r3 -/* 8001C3F8 00019338 7C 9C 23 78 */ mr r28, r4 -/* 8001C3FC 0001933C 7C B9 2B 78 */ mr r25, r5 -/* 8001C400 00019340 7C DD 33 78 */ mr r29, r6 -/* 8001C404 00019344 7C FA 3B 78 */ mr r26, r7 -/* 8001C408 00019348 7D 1E 43 78 */ mr r30, r8 -/* 8001C40C 0001934C 7D 3F 4B 78 */ mr r31, r9 -/* 8001C410 00019350 80 0D 8B E0 */ lwz r0, lbl_80451160-_SDA_BASE_(r13) -/* 8001C414 00019354 90 01 00 10 */ stw r0, 0x10(r1) -/* 8001C418 00019358 A0 0D 8B E4 */ lhz r0, lbl_80451164-_SDA_BASE_(r13) -/* 8001C41C 0001935C B0 01 00 14 */ sth r0, 0x14(r1) -/* 8001C420 00019360 2C 1C 00 FF */ cmpwi r28, 0xff -/* 8001C424 00019364 40 82 00 0C */ bne lbl_8001C430 -/* 8001C428 00019368 38 60 00 00 */ li r3, 0 -/* 8001C42C 0001936C 48 00 01 6C */ b lbl_8001C598 -lbl_8001C430: -/* 8001C430 00019370 28 1E 00 00 */ cmplwi r30, 0 -/* 8001C434 00019374 41 82 00 20 */ beq lbl_8001C454 -/* 8001C438 00019378 A8 1E 00 00 */ lha r0, 0(r30) -/* 8001C43C 0001937C B0 01 00 10 */ sth r0, 0x10(r1) -/* 8001C440 00019380 A8 1E 00 02 */ lha r0, 2(r30) -/* 8001C444 00019384 B0 01 00 12 */ sth r0, 0x12(r1) -/* 8001C448 00019388 A8 1E 00 04 */ lha r0, 4(r30) -/* 8001C44C 0001938C B0 01 00 14 */ sth r0, 0x14(r1) -/* 8001C450 00019390 48 00 00 1C */ b lbl_8001C46C -lbl_8001C454: -/* 8001C454 00019394 C0 22 82 2C */ lfs f1, lbl_80451C2C-_SDA2_BASE_(r2) -/* 8001C458 00019398 48 24 B5 35 */ bl cM_rndFX__Ff -/* 8001C45C 0001939C FC 00 08 1E */ fctiwz f0, f1 -/* 8001C460 000193A0 D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8001C464 000193A4 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8001C468 000193A8 B0 01 00 12 */ sth r0, 0x12(r1) -lbl_8001C46C: -/* 8001C46C 000193AC 38 00 00 FF */ li r0, 0xff -/* 8001C470 000193B0 B0 01 00 14 */ sth r0, 0x14(r1) -/* 8001C474 000193B4 7F 83 E3 78 */ mr r3, r28 -/* 8001C478 000193B8 48 07 F3 4D */ bl check_itemno__Fi -/* 8001C47C 000193BC 57 44 C1 0E */ rlwinm r4, r26, 0x18, 4, 7 -/* 8001C480 000193C0 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8001C484 000193C4 53 20 44 2E */ rlwimi r0, r25, 8, 0x10, 0x17 -/* 8001C488 000193C8 64 00 00 FF */ oris r0, r0, 0xff -/* 8001C48C 000193CC 7C 9A 03 78 */ or r26, r4, r0 -/* 8001C490 000193D0 2C 1C 00 20 */ cmpwi r28, 0x20 -/* 8001C494 000193D4 41 82 00 D8 */ beq lbl_8001C56C -/* 8001C498 000193D8 40 80 00 14 */ bge lbl_8001C4AC -/* 8001C49C 000193DC 2C 1C 00 1E */ cmpwi r28, 0x1e -/* 8001C4A0 000193E0 41 82 00 18 */ beq lbl_8001C4B8 -/* 8001C4A4 000193E4 40 80 00 74 */ bge lbl_8001C518 -/* 8001C4A8 000193E8 48 00 00 C4 */ b lbl_8001C56C -lbl_8001C4AC: -/* 8001C4AC 000193EC 2C 1C 00 23 */ cmpwi r28, 0x23 -/* 8001C4B0 000193F0 40 80 00 BC */ bge lbl_8001C56C -/* 8001C4B4 000193F4 48 00 00 34 */ b lbl_8001C4E8 -lbl_8001C4B8: -/* 8001C4B8 000193F8 38 00 00 00 */ li r0, 0 -/* 8001C4BC 000193FC 90 01 00 08 */ stw r0, 8(r1) -/* 8001C4C0 00019400 38 60 01 3F */ li r3, 0x13f -/* 8001C4C4 00019404 38 80 FF FF */ li r4, -1 -/* 8001C4C8 00019408 7F 65 DB 78 */ mr r5, r27 -/* 8001C4CC 0001940C 7F A6 EB 78 */ mr r6, r29 -/* 8001C4D0 00019410 7F C7 F3 78 */ mr r7, r30 -/* 8001C4D4 00019414 7F E8 FB 78 */ mr r8, r31 -/* 8001C4D8 00019418 39 20 FF FF */ li r9, -1 -/* 8001C4DC 0001941C 39 40 00 00 */ li r10, 0 -/* 8001C4E0 00019420 4B FF D9 25 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv -/* 8001C4E4 00019424 48 00 00 B4 */ b lbl_8001C598 -lbl_8001C4E8: -/* 8001C4E8 00019428 38 00 00 00 */ li r0, 0 -/* 8001C4EC 0001942C 90 01 00 08 */ stw r0, 8(r1) -/* 8001C4F0 00019430 38 60 02 1B */ li r3, 0x21b -/* 8001C4F4 00019434 7F 44 D3 78 */ mr r4, r26 -/* 8001C4F8 00019438 7F 65 DB 78 */ mr r5, r27 -/* 8001C4FC 0001943C 7F A6 EB 78 */ mr r6, r29 -/* 8001C500 00019440 7F C7 F3 78 */ mr r7, r30 -/* 8001C504 00019444 7F E8 FB 78 */ mr r8, r31 -/* 8001C508 00019448 39 20 FF FF */ li r9, -1 -/* 8001C50C 0001944C 39 40 00 00 */ li r10, 0 -/* 8001C510 00019450 4B FF D8 F5 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv -/* 8001C514 00019454 48 00 00 84 */ b lbl_8001C598 -lbl_8001C518: -/* 8001C518 00019458 3B C0 00 00 */ li r30, 0 -/* 8001C51C 0001945C 3B 80 00 00 */ li r28, 0 -lbl_8001C520: -/* 8001C520 00019460 93 81 00 08 */ stw r28, 8(r1) -/* 8001C524 00019464 38 60 02 18 */ li r3, 0x218 -/* 8001C528 00019468 7F 44 D3 78 */ mr r4, r26 -/* 8001C52C 0001946C 7F 65 DB 78 */ mr r5, r27 -/* 8001C530 00019470 7F A6 EB 78 */ mr r6, r29 -/* 8001C534 00019474 38 E1 00 10 */ addi r7, r1, 0x10 -/* 8001C538 00019478 7F E8 FB 78 */ mr r8, r31 -/* 8001C53C 0001947C 39 20 FF FF */ li r9, -1 -/* 8001C540 00019480 39 40 00 00 */ li r10, 0 -/* 8001C544 00019484 4B FF D8 C1 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv -/* 8001C548 00019488 C0 22 82 2C */ lfs f1, lbl_80451C2C-_SDA2_BASE_(r2) -/* 8001C54C 0001948C 48 24 B4 41 */ bl cM_rndFX__Ff -/* 8001C550 00019490 FC 00 08 1E */ fctiwz f0, f1 -/* 8001C554 00019494 D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8001C558 00019498 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8001C55C 0001949C B0 01 00 12 */ sth r0, 0x12(r1) -/* 8001C560 000194A0 3B DE 00 01 */ addi r30, r30, 1 -/* 8001C564 000194A4 2C 1E 00 02 */ cmpwi r30, 2 -/* 8001C568 000194A8 41 80 FF B8 */ blt lbl_8001C520 -lbl_8001C56C: -/* 8001C56C 000194AC 38 00 00 00 */ li r0, 0 -/* 8001C570 000194B0 90 01 00 08 */ stw r0, 8(r1) -/* 8001C574 000194B4 38 60 02 18 */ li r3, 0x218 -/* 8001C578 000194B8 7F 44 D3 78 */ mr r4, r26 -/* 8001C57C 000194BC 7F 65 DB 78 */ mr r5, r27 -/* 8001C580 000194C0 7F A6 EB 78 */ mr r6, r29 -/* 8001C584 000194C4 38 E1 00 10 */ addi r7, r1, 0x10 -/* 8001C588 000194C8 7F E8 FB 78 */ mr r8, r31 -/* 8001C58C 000194CC 39 20 FF FF */ li r9, -1 -/* 8001C590 000194D0 39 40 00 00 */ li r10, 0 -/* 8001C594 000194D4 4B FF D8 71 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv -lbl_8001C598: -/* 8001C598 000194D8 39 61 00 40 */ addi r11, r1, 0x40 -/* 8001C59C 000194DC 48 34 5C 7D */ bl _restgpr_25 -/* 8001C5A0 000194E0 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8001C5A4 000194E4 7C 08 03 A6 */ mtlr r0 -/* 8001C5A8 000194E8 38 21 00 40 */ addi r1, r1, 0x40 -/* 8001C5AC 000194EC 4E 80 00 20 */ blr diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C870.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C870.s deleted file mode 100644 index 354361456dc..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C870.s +++ /dev/null @@ -1,60 +0,0 @@ -/* 8001C870 000197B0 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8001C874 000197B4 7C 08 02 A6 */ mflr r0 -/* 8001C878 000197B8 90 01 00 44 */ stw r0, 0x44(r1) -/* 8001C87C 000197BC 39 61 00 40 */ addi r11, r1, 0x40 -/* 8001C880 000197C0 48 34 59 49 */ bl _savegpr_24 -/* 8001C884 000197C4 7C 7E 1B 78 */ mr r30, r3 -/* 8001C888 000197C8 7C 9F 23 78 */ mr r31, r4 -/* 8001C88C 000197CC 7C B8 2B 78 */ mr r24, r5 -/* 8001C890 000197D0 7C D9 33 78 */ mr r25, r6 -/* 8001C894 000197D4 7C FA 3B 78 */ mr r26, r7 -/* 8001C898 000197D8 7D 1B 43 78 */ mr r27, r8 -/* 8001C89C 000197DC 7D 3C 4B 78 */ mr r28, r9 -/* 8001C8A0 000197E0 7D 5D 53 78 */ mr r29, r10 -/* 8001C8A4 000197E4 38 61 00 10 */ addi r3, r1, 0x10 -/* 8001C8A8 000197E8 38 80 00 00 */ li r4, 0 -/* 8001C8AC 000197EC 38 A0 00 00 */ li r5, 0 -/* 8001C8B0 000197F0 38 C0 00 00 */ li r6, 0 -/* 8001C8B4 000197F4 48 24 AB 41 */ bl __ct__5csXyzFsss -/* 8001C8B8 000197F8 28 1B 00 00 */ cmplwi r27, 0 -/* 8001C8BC 000197FC 41 82 00 3C */ beq lbl_8001C8F8 -/* 8001C8C0 00019800 7F 63 DB 78 */ mr r3, r27 -/* 8001C8C4 00019804 48 24 A8 65 */ bl atan2sX_Z__4cXyzCFv -/* 8001C8C8 00019808 B0 61 00 12 */ sth r3, 0x12(r1) -/* 8001C8CC 0001980C C0 22 82 38 */ lfs f1, lbl_80451C38-_SDA2_BASE_(r2) -/* 8001C8D0 00019810 48 24 B0 BD */ bl cM_rndFX__Ff -/* 8001C8D4 00019814 C0 02 82 44 */ lfs f0, lbl_80451C44-_SDA2_BASE_(r2) -/* 8001C8D8 00019818 EC 00 00 72 */ fmuls f0, f0, f1 -/* 8001C8DC 0001981C FC 00 00 1E */ fctiwz f0, f0 -/* 8001C8E0 00019820 D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8001C8E4 00019824 80 61 00 1C */ lwz r3, 0x1c(r1) -/* 8001C8E8 00019828 A8 01 00 12 */ lha r0, 0x12(r1) -/* 8001C8EC 0001982C 7C 00 1A 14 */ add r0, r0, r3 -/* 8001C8F0 00019830 B0 01 00 12 */ sth r0, 0x12(r1) -/* 8001C8F4 00019834 3B A0 00 01 */ li r29, 1 -lbl_8001C8F8: -/* 8001C8F8 00019838 57 00 06 3E */ clrlwi r0, r24, 0x18 -/* 8001C8FC 0001983C 53 20 44 2E */ rlwimi r0, r25, 8, 0x10, 0x17 -/* 8001C900 00019840 B0 01 00 10 */ sth r0, 0x10(r1) -/* 8001C904 00019844 57 83 06 3E */ clrlwi r3, r28, 0x18 -/* 8001C908 00019848 57 A0 6A E4 */ rlwinm r0, r29, 0xd, 0xb, 0x12 -/* 8001C90C 0001984C 60 00 00 0C */ ori r0, r0, 0xc -/* 8001C910 00019850 7C 60 03 78 */ or r0, r3, r0 -/* 8001C914 00019854 B0 01 00 14 */ sth r0, 0x14(r1) -/* 8001C918 00019858 38 00 00 00 */ li r0, 0 -/* 8001C91C 0001985C 90 01 00 08 */ stw r0, 8(r1) -/* 8001C920 00019860 38 60 02 FC */ li r3, 0x2fc -/* 8001C924 00019864 7F C4 F3 78 */ mr r4, r30 -/* 8001C928 00019868 38 A0 00 00 */ li r5, 0 -/* 8001C92C 0001986C 7F E6 FB 78 */ mr r6, r31 -/* 8001C930 00019870 7F 47 D3 78 */ mr r7, r26 -/* 8001C934 00019874 39 01 00 10 */ addi r8, r1, 0x10 -/* 8001C938 00019878 39 20 00 00 */ li r9, 0 -/* 8001C93C 0001987C 39 40 FF FF */ li r10, -1 -/* 8001C940 00019880 4B FF D3 D9 */ bl fopAcM_create__FsUsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i -/* 8001C944 00019884 39 61 00 40 */ addi r11, r1, 0x40 -/* 8001C948 00019888 48 34 58 CD */ bl _restgpr_24 -/* 8001C94C 0001988C 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8001C950 00019890 7C 08 03 A6 */ mtlr r0 -/* 8001C954 00019894 38 21 00 40 */ addi r1, r1, 0x40 -/* 8001C958 00019898 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C95C.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C95C.s deleted file mode 100644 index acc2046dd83..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C95C.s +++ /dev/null @@ -1,29 +0,0 @@ -/* 8001C95C 0001989C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001C960 000198A0 7C 08 02 A6 */ mflr r0 -/* 8001C964 000198A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001C968 000198A8 7C 6B 1B 78 */ mr r11, r3 -/* 8001C96C 000198AC 7C 8A 23 78 */ mr r10, r4 -/* 8001C970 000198B0 7C A9 2B 78 */ mr r9, r5 -/* 8001C974 000198B4 55 00 06 3E */ clrlwi r0, r8, 0x18 -/* 8001C978 000198B8 28 00 00 FF */ cmplwi r0, 0xff -/* 8001C97C 000198BC 40 82 00 08 */ bne lbl_8001C984 -/* 8001C980 000198C0 7C C8 33 78 */ mr r8, r6 -lbl_8001C984: -/* 8001C984 000198C4 38 60 01 63 */ li r3, 0x163 -/* 8001C988 000198C8 54 C5 44 2E */ rlwinm r5, r6, 8, 0x10, 0x17 -/* 8001C98C 000198CC 55 04 82 1E */ rlwinm r4, r8, 0x10, 8, 0xf -/* 8001C990 000198D0 54 E0 D8 08 */ slwi r0, r7, 0x1b -/* 8001C994 000198D4 64 00 17 00 */ oris r0, r0, 0x1700 -/* 8001C998 000198D8 60 00 00 FF */ ori r0, r0, 0xff -/* 8001C99C 000198DC 7C 80 03 78 */ or r0, r4, r0 -/* 8001C9A0 000198E0 7C A4 03 78 */ or r4, r5, r0 -/* 8001C9A4 000198E4 7D 65 5B 78 */ mr r5, r11 -/* 8001C9A8 000198E8 7D 26 4B 78 */ mr r6, r9 -/* 8001C9AC 000198EC 7D 47 53 78 */ mr r7, r10 -/* 8001C9B0 000198F0 39 00 00 00 */ li r8, 0 -/* 8001C9B4 000198F4 39 20 FF FF */ li r9, -1 -/* 8001C9B8 000198F8 4B FF D3 E1 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -/* 8001C9BC 000198FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001C9C0 00019900 7C 08 03 A6 */ mtlr r0 -/* 8001C9C4 00019904 38 21 00 10 */ addi r1, r1, 0x10 -/* 8001C9C8 00019908 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001C9CC.s b/include/f/f_op/f_op_actor_mng/asm/func_8001C9CC.s deleted file mode 100644 index 4e535bfa8f6..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001C9CC.s +++ /dev/null @@ -1,22 +0,0 @@ -/* 8001C9CC 0001990C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001C9D0 00019910 7C 08 02 A6 */ mflr r0 -/* 8001C9D4 00019914 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001C9D8 00019918 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8001C9DC 0001991C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8001C9E0 00019920 41 82 00 24 */ beq lbl_8001CA04 -/* 8001C9E4 00019924 4B FF C2 FD */ bl fopAc_IsActor -/* 8001C9E8 00019928 2C 03 00 00 */ cmpwi r3, 0 -/* 8001C9EC 0001992C 41 82 00 18 */ beq lbl_8001CA04 -/* 8001C9F0 00019930 88 1F 04 96 */ lbz r0, 0x496(r31) -/* 8001C9F4 00019934 28 00 00 02 */ cmplwi r0, 2 -/* 8001C9F8 00019938 40 82 00 0C */ bne lbl_8001CA04 -/* 8001C9FC 0001993C 7F E3 FB 78 */ mr r3, r31 -/* 8001CA00 00019940 48 00 00 08 */ b lbl_8001CA08 -lbl_8001CA04: -/* 8001CA04 00019944 38 60 00 00 */ li r3, 0 -lbl_8001CA08: -/* 8001CA08 00019948 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8001CA0C 0001994C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001CA10 00019950 7C 08 03 A6 */ mtlr r0 -/* 8001CA14 00019954 38 21 00 10 */ addi r1, r1, 0x10 -/* 8001CA18 00019958 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001CAD8.s b/include/f/f_op/f_op_actor_mng/asm/func_8001CAD8.s deleted file mode 100644 index 8bbec267ca6..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001CAD8.s +++ /dev/null @@ -1,30 +0,0 @@ -/* 8001CAD8 00019A18 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001CADC 00019A1C 7C 08 02 A6 */ mflr r0 -/* 8001CAE0 00019A20 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001CAE4 00019A24 7C 69 1B 78 */ mr r9, r3 -/* 8001CAE8 00019A28 7C 88 23 78 */ mr r8, r4 -/* 8001CAEC 00019A2C 38 00 00 00 */ li r0, 0 -/* 8001CAF0 00019A30 90 01 00 08 */ stw r0, 8(r1) -/* 8001CAF4 00019A34 38 60 01 39 */ li r3, 0x139 -/* 8001CAF8 00019A38 54 A4 44 2E */ rlwinm r4, r5, 8, 0x10, 0x17 -/* 8001CAFC 00019A3C 50 E4 82 1E */ rlwimi r4, r7, 0x10, 8, 0xf -/* 8001CB00 00019A40 50 C4 06 3E */ rlwimi r4, r6, 0, 0x18, 0x1f -/* 8001CB04 00019A44 7D 05 43 78 */ mr r5, r8 -/* 8001CB08 00019A48 88 09 04 E2 */ lbz r0, 0x4e2(r9) -/* 8001CB0C 00019A4C 7C 06 07 74 */ extsb r6, r0 -/* 8001CB10 00019A50 38 E9 04 DC */ addi r7, r9, 0x4dc -/* 8001CB14 00019A54 39 00 00 00 */ li r8, 0 -/* 8001CB18 00019A58 39 20 FF FF */ li r9, -1 -/* 8001CB1C 00019A5C 39 40 00 00 */ li r10, 0 -/* 8001CB20 00019A60 4B FF D2 E5 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv -/* 8001CB24 00019A64 28 03 00 00 */ cmplwi r3, 0 -/* 8001CB28 00019A68 41 82 00 0C */ beq lbl_8001CB34 -/* 8001CB2C 00019A6C 80 63 00 04 */ lwz r3, 4(r3) -/* 8001CB30 00019A70 48 00 00 08 */ b lbl_8001CB38 -lbl_8001CB34: -/* 8001CB34 00019A74 38 60 FF FF */ li r3, -1 -lbl_8001CB38: -/* 8001CB38 00019A78 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001CB3C 00019A7C 7C 08 03 A6 */ mtlr r0 -/* 8001CB40 00019A80 38 21 00 10 */ addi r1, r1, 0x10 -/* 8001CB44 00019A84 4E 80 00 20 */ blr diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001D1F4.s b/include/f/f_op/f_op_actor_mng/asm/func_8001D1F4.s deleted file mode 100644 index 6329e310ba3..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001D1F4.s +++ /dev/null @@ -1,2 +0,0 @@ -/* 8001D1F4 0001A134 38 60 00 00 */ li r3, 0 -/* 8001D1F8 0001A138 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001D32C.s b/include/f/f_op/f_op_actor_mng/asm/func_8001D32C.s deleted file mode 100644 index 4db10652bd4..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001D32C.s +++ /dev/null @@ -1,44 +0,0 @@ -/* 8001D32C 0001A26C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001D330 0001A270 7C 08 02 A6 */ mflr r0 -/* 8001D334 0001A274 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001D338 0001A278 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8001D33C 0001A27C 93 C1 00 08 */ stw r30, 8(r1) -/* 8001D340 0001A280 7C 7E 1B 78 */ mr r30, r3 -/* 8001D344 0001A284 7C 9F 23 78 */ mr r31, r4 -/* 8001D348 0001A288 C8 03 00 10 */ lfd f0, 0x10(r3) -/* 8001D34C 0001A28C FC 40 00 32 */ fmul f2, f0, f0 -/* 8001D350 0001A290 C8 03 00 00 */ lfd f0, 0(r3) -/* 8001D354 0001A294 FC 20 00 32 */ fmul f1, f0, f0 -/* 8001D358 0001A298 C8 03 00 08 */ lfd f0, 8(r3) -/* 8001D35C 0001A29C FC 00 00 32 */ fmul f0, f0, f0 -/* 8001D360 0001A2A0 FC 01 00 2A */ fadd f0, f1, f0 -/* 8001D364 0001A2A4 FC 22 00 2A */ fadd f1, f2, f0 -/* 8001D368 0001A2A8 48 34 F6 ED */ bl func_8036CA54 -/* 8001D36C 0001A2AC C8 02 82 18 */ lfd f0, lbl_80451C18-_SDA2_BASE_(r2) -/* 8001D370 0001A2B0 FC 00 08 00 */ fcmpu cr0, f0, f1 -/* 8001D374 0001A2B4 41 82 00 38 */ beq lbl_8001D3AC -/* 8001D378 0001A2B8 C8 1E 00 00 */ lfd f0, 0(r30) -/* 8001D37C 0001A2BC FC 00 08 24 */ fdiv f0, f0, f1 -/* 8001D380 0001A2C0 FC 00 00 18 */ frsp f0, f0 -/* 8001D384 0001A2C4 D0 1F 00 00 */ stfs f0, 0(r31) -/* 8001D388 0001A2C8 C8 1E 00 08 */ lfd f0, 8(r30) -/* 8001D38C 0001A2CC FC 00 08 24 */ fdiv f0, f0, f1 -/* 8001D390 0001A2D0 FC 00 00 18 */ frsp f0, f0 -/* 8001D394 0001A2D4 D0 1F 00 04 */ stfs f0, 4(r31) -/* 8001D398 0001A2D8 C8 1E 00 10 */ lfd f0, 0x10(r30) -/* 8001D39C 0001A2DC FC 00 08 24 */ fdiv f0, f0, f1 -/* 8001D3A0 0001A2E0 FC 00 00 18 */ frsp f0, f0 -/* 8001D3A4 0001A2E4 D0 1F 00 08 */ stfs f0, 8(r31) -/* 8001D3A8 0001A2E8 48 00 00 14 */ b lbl_8001D3BC -lbl_8001D3AC: -/* 8001D3AC 0001A2EC C0 02 82 04 */ lfs f0, lbl_80451C04-_SDA2_BASE_(r2) -/* 8001D3B0 0001A2F0 D0 1F 00 00 */ stfs f0, 0(r31) -/* 8001D3B4 0001A2F4 D0 1F 00 04 */ stfs f0, 4(r31) -/* 8001D3B8 0001A2F8 D0 1F 00 08 */ stfs f0, 8(r31) -lbl_8001D3BC: -/* 8001D3BC 0001A2FC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8001D3C0 0001A300 83 C1 00 08 */ lwz r30, 8(r1) -/* 8001D3C4 0001A304 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001D3C8 0001A308 7C 08 03 A6 */ mtlr r0 -/* 8001D3CC 0001A30C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8001D3D0 0001A310 4E 80 00 20 */ blr diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001D3D4.s b/include/f/f_op/f_op_actor_mng/asm/func_8001D3D4.s deleted file mode 100644 index 31861578f18..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001D3D4.s +++ /dev/null @@ -1,22 +0,0 @@ -/* 8001D3D4 0001A314 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8001D3D8 0001A318 7C 08 02 A6 */ mflr r0 -/* 8001D3DC 0001A31C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8001D3E0 0001A320 C0 24 00 00 */ lfs f1, 0(r4) -/* 8001D3E4 0001A324 C0 03 00 00 */ lfs f0, 0(r3) -/* 8001D3E8 0001A328 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8001D3EC 0001A32C D8 01 00 08 */ stfd f0, 8(r1) -/* 8001D3F0 0001A330 C0 24 00 04 */ lfs f1, 4(r4) -/* 8001D3F4 0001A334 C0 03 00 04 */ lfs f0, 4(r3) -/* 8001D3F8 0001A338 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8001D3FC 0001A33C D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8001D400 0001A340 C0 24 00 08 */ lfs f1, 8(r4) -/* 8001D404 0001A344 C0 03 00 08 */ lfs f0, 8(r3) -/* 8001D408 0001A348 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8001D40C 0001A34C D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8001D410 0001A350 38 61 00 08 */ addi r3, r1, 8 -/* 8001D414 0001A354 7C A4 2B 78 */ mr r4, r5 -/* 8001D418 0001A358 4B FF FF 15 */ bl vectle_calc__FPC10DOUBLE_POSP4cXyz -/* 8001D41C 0001A35C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8001D420 0001A360 7C 08 03 A6 */ mtlr r0 -/* 8001D424 0001A364 38 21 00 20 */ addi r1, r1, 0x20 -/* 8001D428 0001A368 4E 80 00 20 */ blr diff --git a/include/f/f_op/f_op_actor_mng/asm/func_8001D5A4.s b/include/f/f_op/f_op_actor_mng/asm/func_8001D5A4.s deleted file mode 100644 index b0bd8a70e69..00000000000 --- a/include/f/f_op/f_op_actor_mng/asm/func_8001D5A4.s +++ /dev/null @@ -1,20 +0,0 @@ -/* 8001D5A4 0001A4E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001D5A8 0001A4E8 7C 08 02 A6 */ mflr r0 -/* 8001D5AC 0001A4EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001D5B0 0001A4F0 7C 64 1B 78 */ mr r4, r3 -/* 8001D5B4 0001A4F4 A8 63 00 0E */ lha r3, 0xe(r3) -/* 8001D5B8 0001A4F8 88 04 04 99 */ lbz r0, 0x499(r4) -/* 8001D5BC 0001A4FC 7C 04 07 74 */ extsb r4, r0 -/* 8001D5C0 0001A500 48 00 79 1D */ bl dStage_getName2 -/* 8001D5C4 0001A504 28 03 00 00 */ cmplwi r3, 0 -/* 8001D5C8 0001A508 41 82 00 08 */ beq lbl_8001D5D0 -/* 8001D5CC 0001A50C 48 00 00 10 */ b lbl_8001D5DC -lbl_8001D5D0: -/* 8001D5D0 0001A510 3C 60 80 38 */ lis r3, lbl_803788C8@ha -/* 8001D5D4 0001A514 38 63 88 C8 */ addi r3, r3, lbl_803788C8@l -/* 8001D5D8 0001A518 38 63 01 7A */ addi r3, r3, 0x17a -lbl_8001D5DC: -/* 8001D5DC 0001A51C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001D5E0 0001A520 7C 08 03 A6 */ mtlr r0 -/* 8001D5E4 0001A524 38 21 00 10 */ addi r1, r1, 0x10 -/* 8001D5E8 0001A528 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/msl_c/math.h b/include/msl_c/math.h index 5e7913a0554..44d27cc6c00 100644 --- a/include/msl_c/math.h +++ b/include/msl_c/math.h @@ -56,6 +56,7 @@ f64 modf(f64, f64*); f64 pow(f64, f64); f64 sin(f64); f32 sinf(f32); +f64 sqrt(f64); f64 tan(f64); f32 tanf(f32); f64 func_8036C590(f64); diff --git a/libs/SSystem/SComponent/c_angle.cpp b/libs/SSystem/SComponent/c_angle.cpp index 89533c288a0..9a429515c79 100644 --- a/libs/SSystem/SComponent/c_angle.cpp +++ b/libs/SSystem/SComponent/c_angle.cpp @@ -5,7 +5,7 @@ #include "msl_c/math.h" extern "C" { -double func_8036CA54(double); +double sqrt(double); void __ct__7cSAngleFs(void); void cSAngle_NS_dtor(void); void func_80361C24(void); @@ -216,8 +216,8 @@ void cSPolar::Val(const cXyz& xyz) { z = xyz.z; double tmp = square(z) + square(x); double tmp2 = square(y) + tmp; - tmp4 = (tmp > 0.0) ? (float)func_8036CA54(tmp) : 0.0f; - mRadial = (tmp2 > 0.0) ? (float)func_8036CA54(tmp2) : 0.0f; + tmp4 = (tmp > 0.0) ? (float)sqrt(tmp) : 0.0f; + mRadial = (tmp2 > 0.0) ? (float)sqrt(tmp2) : 0.0f; mAngle1.Val(static_cast(cM_atan2f(tmp4, y) * 10430.378f)); mAngle2.Val(static_cast(cM_atan2f(x, z) * 10430.378f)); this->Formal(); diff --git a/src/d/d_item/d_item.cpp b/src/d/d_item/d_item.cpp index 3b7e65f24f2..7cb8b0f86f8 100644 --- a/src/d/d_item/d_item.cpp +++ b/src/d/d_item/d_item.cpp @@ -1639,13 +1639,12 @@ bool isArrow(u8 item_no) { return is_arrow; } -asm bool isBottleItem(u8 param1) { - nofralloc +asm bool isBottleItem(u8 param1){nofralloc #include "d/d_item/d_item/asm/func_8009B708.s" } -bool isHeart(u8 item_no) { - bool is_heart = false; +BOOL isHeart(u8 item_no) { + BOOL is_heart = false; if (item_no == HEART || item_no == TRIPLE_HEART) { is_heart = true; diff --git a/src/d/d_kankyo/d_kankyo_rain.cpp b/src/d/d_kankyo/d_kankyo_rain.cpp index 43bb600282a..1b99b964c83 100644 --- a/src/d/d_kankyo/d_kankyo_rain.cpp +++ b/src/d/d_kankyo/d_kankyo_rain.cpp @@ -9,7 +9,7 @@ #include "msl_c/math.h" extern "C" { -double func_8036CA54(double); +double sqrt(double); int dKy_daynight_check(void); int func_8036608C(const void*, const void*, u32); int strcmp(const char*, const char*); diff --git a/src/f/f_op/f_op_actor_mng.cpp b/src/f/f_op/f_op_actor_mng.cpp index 983f7a6a97e..f41872a3e4e 100644 --- a/src/f/f_op/f_op_actor_mng.cpp +++ b/src/f/f_op/f_op_actor_mng.cpp @@ -6,9 +6,11 @@ #include "SComponent/c_lib.h" #include "SComponent/c_malloc.h" #include "d/d_com/d_com_inf_game/d_com_inf_game.h" +#include "d/d_item/d_item/d_item.h" #include "d/d_stage/d_stage.h" #include "f/f_op/f_op_actor_iter.h" #include "m_Do/m_Do_ext/m_Do_ext.h" +#include "msl_c/math.h" #include "msl_c/string.h" #define FLOAT_LABEL(x) (*(f32*)&x) @@ -72,7 +74,6 @@ void cM3dGPla_NS_dtor(void); void cM_atan2s__Fff(void); void cM_rndFX__Ff(void); void cM_rndF__Ff(void); -void check_itemno__Fi(void); void createAppend__FUsUlPC4cXyziPC5csXyzPC4cXyzScUi(void); void dBgS_GndChk(void); void dBgS_LinChk(void); @@ -103,7 +104,7 @@ void dPa_control_c_NS_level_c_NS_getEmitter(void); void dPa_control_c_NS_setSimpleFoot(void); void dPa_control_c_NS_set_X1_(void); void dPath_GetPolyRoomPathVec(void); -void dStage_getName2(void); +const char* dStage_getName2(s16, s8); void daTagStream_c_NS_checkArea(void); void enemySearchJugge__FPvPv(void); void event_second_actor__FUs(void); @@ -176,7 +177,7 @@ void fopAcM_setEffectMtx__FPC10fopAc_ac_cPC12J3DModelData(void); void fopAcM_setRoomLayer__FPvi(void); void fopAcM_setStageLayer__FPv(void); void waterCheck__11fopAcM_wt_cFPC4cXyz(void); -void fopAc_IsActor(void); +BOOL fopAc_IsActor(void*); void fopScnM_SearchByID(void); void fpoAcM_relativePos__FPC10fopAc_ac_cPC4cXyzP4cXyz(void); void fopAcM_SearchByName__FsPP10fopAc_ac_c(void); @@ -232,8 +233,9 @@ void normalizeZP__4cXyzFv(void); void onActor__10dSv_info_cFii(void); void vectle_calc__FPC10DOUBLE_POSP4cXyz(void); void getFreeSize__7JKRHeapCFv(void); + +s32 check_itemno__Fi(int); int abs(int); -void func_8036CA54(void); char* strcpy(char*, const char*); void dBgS_ObjLinChk_NS_dtor(void); void dBgS_GndChk_NS_dtor(void); @@ -275,19 +277,19 @@ extern f32 lbl_80451C00; // f_op_actor_mng::@4263, 10.0 extern f32 lbl_80451C04; // f_op_actor_mng::@4645, 0.0 extern u8 lbl_80451C08; extern u8 lbl_80451C10; -extern u8 lbl_80451C18; +extern f64 lbl_80451C18; extern u8 lbl_80451C20; extern u8 lbl_80451C24; extern u8 lbl_80451C28; -extern u8 lbl_80451C2C; -extern u8 lbl_80451C30; -extern u8 lbl_80451C34; -extern u8 lbl_80451C38; -extern u8 lbl_80451C3C; -extern u8 lbl_80451C40; -extern u8 lbl_80451C44; -extern u8 lbl_80451C48; -extern u8 lbl_80451C4C; +extern f32 lbl_80451C2C; // 32767.0f +extern f32 lbl_80451C30; // 2.0f +extern f32 lbl_80451C34; // 8192.0f +extern f32 lbl_80451C38; // 1.0f +extern f32 lbl_80451C3C; // 0.3f +extern f32 lbl_80451C40; // 0.2f +extern f32 lbl_80451C44; // 2048.0f +extern f32 lbl_80451C48; // 100.0f +extern f32 lbl_80451C4C; // 50.0f extern u8 lbl_80451C50; extern u8 lbl_80451C54; extern u8 lbl_80451C58; @@ -984,102 +986,295 @@ asm s32 fopAcM_createItemFromEnemyID(u8, const cXyz*, int, int, const csXyz*, co // fopAcM_createItemFromTable(const cXyz*, int, int, int, const csXyz*, int, const cXyz*, f32*, // f32*, bool) asm s32 fopAcM_createItemFromTable(const cXyz*, int, int, int, const csXyz*, int, const cXyz*, f32*, - f32*, bool) { - nofralloc + f32*, bool){nofralloc #include "f/f_op/f_op_actor_mng/asm/func_8001BF64.s" } // fopAcM_createDemoItem__FPC4cXyziiPC5csXyziPC4cXyzUc -// fopAcM_createDemoItem(const cXyz*, int, int, const csXyz*, int, const cXyz*, u8) -asm s32 fopAcM_createDemoItem(const cXyz*, int, int, const csXyz*, int, const cXyz*, u8) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C078.s" +s32 fopAcM_createDemoItem(const cXyz* pPos, int pItemNo, int pItemBitNo, const csXyz* pRot, + int param_5, const cXyz* param_6, u8 param_7) { + if (pItemNo == 0xFF) { + return -1; + } else { + // TODO: actor enum + return fopAcM_create(0x21d, + (pItemNo & 0xFF) | (pItemBitNo & 0x7F) << 0x8 | (param_7 << 0x10), + pPos, param_5, pRot, param_6, -1); + } } // fopAcM_createItemForBoss__FPC4cXyziiPC5csXyzPC4cXyzffi -// fopAcM_createItemForBoss(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32, int) -asm s32 fopAcM_createItemForBoss(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32, int) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C0D4.s" +s32 fopAcM_createItemForBoss(const cXyz* pPos, int param_2, int param_3, const csXyz* pRot, + const cXyz* param_5, f32 param_6, f32 param_7, int param_8) { + fopAc_ac_c* actor = static_cast( + fopAcM_fastCreate(0x21b, 0xFFFF0000 | param_8 << 0x8 | (param_2 & 0xFF), pPos, param_3, + pRot, param_5, -1, NULL, NULL)); + if (actor != NULL) { + actor->mSpeedF = param_6; + actor->mSpeed.y = param_7; + } + return fopAcM_GetID(actor); } // fopAcM_createItemForMidBoss__FPC4cXyziiPC5csXyzPC4cXyzii -// fopAcM_createItemForMidBoss(const cXyz*, int, int, const csXyz*, const cXyz*, int, int) -asm s32 fopAcM_createItemForMidBoss(const cXyz*, int, int, const csXyz*, const cXyz*, int, int) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C174.s" +s32 fopAcM_createItemForMidBoss(const cXyz* pPos, int param_2, int param_3, const csXyz* pRot, + const cXyz* param_5, int param_6, int param_7) { + return fopAcM_createItem(pPos, param_2, param_7, param_3, &csXyz(lbl_80451160), param_5, 0x6); } // fopAcM_createItemForDirectGet__FPC4cXyziiPC5csXyzPC4cXyzff -// fopAcM_createItemForDirectGet(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32) -asm s32 fopAcM_createItemForDirectGet(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C1B8.s" +void* fopAcM_createItemForDirectGet(const cXyz* pPos, int param_2, int param_3, const csXyz* pRot, + const cXyz* param_5, f32 param_6, f32 param_7) { + return fopAcM_fastCreateItem(pPos, param_2, param_3, pRot, param_5, ¶m_6, ¶m_7, -1, 0x7, + NULL); } // fopAcM_createItemForSimpleDemo__FPC4cXyziiPC5csXyzPC4cXyzff -// fopAcM_createItemForSimpleDemo(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32) -asm s32 fopAcM_createItemForSimpleDemo(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C1FC.s" +void* fopAcM_createItemForSimpleDemo(const cXyz* pPos, int param_2, int param_3, const csXyz* pRot, + const cXyz* param_5, f32 param_6, f32 param_7) { + return fopAcM_fastCreateItem(pPos, param_2, param_3, pRot, param_5, ¶m_6, ¶m_7, -1, 0x4, + NULL); +} + +inline u32 maskShift(int val, int bits, int shift) { + return (val & ((1 << bits) - 1)) << shift; +} + +inline u32 makeItemParams(int iNo, int p8, int unk, int p9) { + // iNo = ; + // u32 part1 = (p8 & 0xFF) << 0x8; + // iNo &= 0xFF; + // u32 part2 = (iNo); + // u32 part3 = (unk & 0xFF) << 0x10; + // u32 part4 = ((p9 & 0xF) << 0x18); + // return part1 | part2 | part3 | part4; + // u32 part2 = (p8 & 0xFF) << 0x8; + // u32 part2 = maskShift(p8, 8, 0x8); + // part2 |= maskShift(iNo, 8, 0); + // part2 |= maskShift(unk, 8, 0x10); + // part2 |= maskShift(p9, 4, 0x18); + // return part2; + return maskShift(p8, 8, 0x8) | maskShift(iNo, 8, 0) | maskShift(unk, 8, 0x10) | + maskShift(p9, 4, 0x18); +} + +inline u32 makeItemParams2(int iNo, int p8, int unk, int p9) { + return makeItemParams(check_itemno(iNo), p8, unk, p9); } // fopAcM_createItem__FPC4cXyziiiPC5csXyzPC4cXyzi -// fopAcM_createItem(const cXyz*, int, int, int, const csXyz*, const cXyz*, int) -asm s32 fopAcM_createItem(const cXyz*, int, int, int, const csXyz*, const cXyz*, int) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C240.s" +s32 fopAcM_createItem(const cXyz* pPos, int param_2, int param_3, int param_4, const csXyz* pRot, + const cXyz* param_6, int param_7) { + if (param_2 == 0xFF) { + return 0xFFFFFFFF; + } + csXyz tmps(lbl_80451160); + if (pRot != NULL) { + tmps = *pRot; + } else { + tmps.mY = cM_rndFX(FLOAT_LABEL(lbl_80451C2C)); + } + tmps.mZ = 0xFF; + u32 itemActorParams = makeItemParams(check_itemno(param_2), param_3, 0xFF, param_7); + switch (param_2) { + case RECOVERY_FAILY: + return fopAcM_create(0x13f, 0xFFFFFFFF, pPos, param_4, pRot, param_6, -1); + case KAKERA_HEART: + case UTAWA_HEART: + return fopAcM_create(0x21b, itemActorParams, pPos, param_4, pRot, param_6, -1); + case TRIPLE_HEART: + for (int i = 0; i < 2; i++) { + fopAcM_create(0x218, itemActorParams, pPos, param_4, &tmps, param_6, -1); + tmps.mY = cM_rndFX(FLOAT_LABEL(lbl_80451C2C)); + } + default: + return fopAcM_create(0x218, itemActorParams, pPos, param_4, &tmps, param_6, -1); + } } // fopAcM_fastCreateItem2__FPC4cXyziiiiPC5csXyzPC4cXyz -// fopAcM_fastCreateItem2(const cXyz*, int, int, int, int, const csXyz*, const cXyz*) -asm s32 fopAcM_fastCreateItem2(const cXyz*, int, int, int, int, const csXyz*, const cXyz*) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C3E0.s" +void* fopAcM_fastCreateItem2(const cXyz* pPos, int param_2, int param_3, int param_4, int param_5, + const csXyz* pRot, const cXyz* param_7) { + csXyz tmps(lbl_80451160); + if (param_2 == 0xFF) { + return NULL; + } + if (pRot != NULL) { + tmps = *pRot; + } else { + tmps.mY = cM_rndFX(FLOAT_LABEL(/* 32767.0f */ lbl_80451C2C)); + } + tmps.mZ = 0xFF; + int tmpItemNo = check_itemno(param_2); + u32 itemActorParams = + (param_3 & 0xFF) << 0x8 | (tmpItemNo & 0xFF) | 0xFF << 0x10 | ((param_5 & 0xF) << 0x18); + switch (param_2) { + case RECOVERY_FAILY: + return fopAcM_fastCreate(0x13f, 0xFFFFFFFF, pPos, param_4, pRot, param_7, -1, NULL, NULL); + case KAKERA_HEART: + case UTAWA_HEART: + return fopAcM_fastCreate(0x21b, itemActorParams, pPos, param_4, pRot, param_7, -1, NULL, + NULL); + case TRIPLE_HEART: + for (int i = 0; i < 2; i++) { + fopAcM_fastCreate(0x218, itemActorParams, pPos, param_4, &tmps, param_7, -1, NULL, + NULL); + tmps.mY = cM_rndFX(FLOAT_LABEL(lbl_80451C2C)); + } + default: + return fopAcM_fastCreate(0x218, itemActorParams, pPos, param_4, &tmps, param_7, -1, NULL, + NULL); + } +} + +inline void make_prm_item(u32* actorParams, u8 p1, u8 p2, u8 p3) { + *actorParams = (p2 << 8) | p1 | (0xFF << 0x10) | ((p3 & 0xF) << 0x18) | 0; } // fopAcM_fastCreateItem__FPC4cXyziiPC5csXyzPC4cXyzPfPfiiPFPv_i -// fopAcM_fastCreateItem(const cXyz*, int, int, const csXyz*, const cXyz*, f32*, f32*, int, int, int -// (*)(void*)) -asm s32 fopAcM_fastCreateItem(const cXyz*, int, int, const csXyz*, const cXyz*, f32*, f32*, int, - int, createFunc) { +#ifdef NON_MATCHING +void* fopAcM_fastCreateItem(const cXyz* pPos, int param_2, int param_3, const csXyz* pRot, + const cXyz* param_5, f32* param_6, f32* param_7, int param_8, + int param_9, createFunc param_10) { + // regalloc: r30 -> r29, r31 -> r30, r29 -> r31 + if (param_2 == 0xFF) { + return NULL; + } + csXyz tmps; + u32 tmpItemNo = check_itemno(param_2); + // u32 itemActorParams; + // make_prm_item(&itemActorParams, tmpItemNo, param_8, param_9); + u32 itemActorParams = + makeItemParams(tmpItemNo, param_8, 0xFF, param_9); // uses r0 instead of r3 + if (param_6 != NULL && isHeart(param_2) != false) { + *param_6 = FLOAT_LABEL(/* 2.0f */ lbl_80451C30) * *param_6; + } + switch (param_2) { + case RECOVERY_FAILY: + return fopAcM_fastCreate(0x13f, 0xFFFFFFFF, pPos, param_3, pRot, param_5, -1, NULL, NULL); + case KAKERA_HEART: + case UTAWA_HEART: + return fopAcM_fastCreate(0x21b, itemActorParams, pPos, param_3, pRot, param_5, -1, NULL, + NULL); + case TRIPLE_HEART: + for (int i = 0; i < 2; i++) { + if (pRot != NULL) { + tmps.mX = pRot->mX; + tmps.mY = pRot->mY; + tmps.mZ = pRot->mZ; + } else { + tmps.mX = lbl_80451160.mX; + tmps.mY = lbl_80451160.mY; + tmps.mZ = lbl_80451160.mZ; + } + tmps.mZ = 0xFF; + tmps.mY += (s16)cM_rndFX(FLOAT_LABEL(/* 8192.0f */ lbl_80451C34)); + fopAc_ac_c* actor = static_cast(fopAcM_fastCreate( + 0x218, itemActorParams, pPos, param_3, &tmps, param_5, -1, param_10, NULL)); + if (actor != NULL) { + if (param_6 != NULL) { + actor->mSpeedF = *param_6 * (FLOAT_LABEL(/* 1.0f */ lbl_80451C38) + + cM_rndFX(FLOAT_LABEL(/* 0.3f */ lbl_80451C3C))); + } + if (param_7 != NULL) { + actor->mSpeed.y = *param_7 * (FLOAT_LABEL(/* 1.0f */ lbl_80451C38) + + cM_rndFX(FLOAT_LABEL(/* 0.2f */ lbl_80451C40))); + } + } + } + default: + if (pRot != NULL) { + tmps.mX = pRot->mX; + tmps.mY = pRot->mY; + tmps.mZ = pRot->mZ; + } else { + tmps.mX = lbl_80451160.mX; + tmps.mY = lbl_80451160.mY; + tmps.mZ = lbl_80451160.mZ; + } + tmps.mZ = 0xFF; + fopAc_ac_c* actor = static_cast(fopAcM_fastCreate( + 0x218, itemActorParams, pPos, param_3, &tmps, param_5, -1, param_10, NULL)); + if (actor != NULL) { + if (param_6 != NULL) { + actor->mSpeedF = *param_6; + } + if (param_7 != NULL) { + actor->mSpeed.y = *param_7; + } + } + return actor; + } +} +#else +asm void* fopAcM_fastCreateItem(const cXyz*, int, int, const csXyz*, const cXyz*, f32*, f32*, int, + int, createFunc) { nofralloc #include "f/f_op/f_op_actor_mng/asm/func_8001C5B0.s" } +#endif + +inline void make_prm_bokkuri(u32* pActorParams, csXyz* pRot, u8 param_2, u8 param_3, u8 param_4, + u8 param_5, u8 param_6) { + pRot->mX = (param_4 << 0x8) | (param_3 & 0xFF); + pRot->mZ = (param_6 << 0xD) | (param_2 << 0x1) | param_5; +} // fopAcM_createBokkuri__FUsPC4cXyziiiPC4cXyzii -// fopAcM_createBokkuri(u16, const cXyz*, int, int, int, const cXyz*, int, int) -asm s32 fopAcM_createBokkuri(u16, const cXyz*, int, int, int, const cXyz*, int, int) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C870.s" +s32 fopAcM_createBokkuri(u16 param_1, const cXyz* pPos, int param_3, int param_4, int param_5, + const cXyz* param_6, int param_7, int param_8) { + csXyz tmps(0, 0, 0); + if (param_6 != NULL) { + tmps.mY = param_6->atan2sX_Z(); + tmps.mY += static_cast(FLOAT_LABEL(/* 2048.0f */ lbl_80451C44) * + cM_rndFX(FLOAT_LABEL(/* 1.0f */ lbl_80451C38))); + param_8 = 1; + } + u32 actorParams = 0; + make_prm_bokkuri(&actorParams, &tmps, 6, param_3, param_4, param_7, param_8); + return fopAcM_create(0x2fc, param_1, actorParams, pPos, param_5, &tmps, NULL, 0xFF, NULL); +} + +inline void make_prm_warp_hole(u32* actorParams, u8 p1, u8 p2, u8 p3) { + u32 pp1 = (p3 << 0x8); + u32 pp2 = (p2 << 0x10); + u32 pp3 = (p1 << 0x1B) | 0x170000FF; + *actorParams = pp2 | pp3 | pp1; } // fopAcM_createWarpHole__FPC4cXyzPC5csXyziUcUcUc -// fopAcM_createWarpHole(const cXyz*, const csXyz*, int, u8, u8, u8) -asm s32 fopAcM_createWarpHole(const cXyz*, const csXyz*, int, u8, u8, u8) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C95C.s" +s32 fopAcM_createWarpHole(const cXyz* pPos, const csXyz* pRot, int param_3, u8 param_4, u8 param_5, + u8 param_6) { + if (param_6 == 0xFF) { + param_6 = param_4; + } + u32 actorParams; + make_prm_warp_hole(&actorParams, param_5, param_6, param_4); + return fopAcM_create(0x163, actorParams, pPos, param_3, pRot, NULL, -1); } // enemySearchJugge__FPvPv -// enemySearchJugge(void*, void*) -asm s32 enemySearchJugge(void*, void*) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001C9CC.s" +void* enemySearchJugge(void* pActor, void* pData) { + if (pActor != NULL && fopAc_IsActor(pActor) && + static_cast(pActor)->unk_0x496 == 2) { + return pActor; + } else { + return NULL; + } } // fopAcM_myRoomSearchEnemy__FSc // fopAcM_myRoomSearchEnemy(s8) -asm s32 fopAcM_myRoomSearchEnemy(s8) { - nofralloc +asm s32 fopAcM_myRoomSearchEnemy(s8){nofralloc #include "f/f_op/f_op_actor_mng/asm/func_8001CA1C.s" } // fopAcM_createDisappear__FPC10fopAc_ac_cPC4cXyzUcUcUc -// fopAcM_createDisappear(const fopAc_ac_c*, const cXyz*, u8, u8, u8) -asm s32 fopAcM_createDisappear(const fopAc_ac_c*, const cXyz*, u8, u8, u8) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001CAD8.s" +s32 fopAcM_createDisappear(const fopAc_ac_c* pActor, const cXyz* pPos, u8 param_3, u8 param_4, + u8 param_5) { + s8 roomNo = pActor->mRoomNo; + return fopAcM_GetID(fopAcM_fastCreate(0x139, (param_5 << 0x10) | (param_3 << 0x8) | param_4, + pPos, roomNo, &pActor->mAngle, NULL, 0xFF, NULL, NULL)); } // fopAcM_setCarryNow__FP10fopAc_ac_ci @@ -1133,16 +1328,13 @@ asm s32 fopAcM_effSmokeSet1(u32*, u32*, const cXyz*, const csXyz*, f32, const dK // fopAcM_effHamonSet__FPUlPC4cXyzff // fopAcM_effHamonSet(u32*, const cXyz*, f32, f32) -asm s32 fopAcM_effHamonSet(u32*, const cXyz*, f32, f32) { - nofralloc +asm s32 fopAcM_effHamonSet(u32*, const cXyz*, f32, f32){nofralloc #include "f/f_op/f_op_actor_mng/asm/func_8001D10C.s" } // fopAcM_riverStream__FP4cXyzPsPff -// fopAcM_riverStream(cXyz*, s16*, f32*, f32) -asm s32 fopAcM_riverStream(cXyz*, s16*, f32*, f32) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001D1F4.s" +s32 fopAcM_riverStream(cXyz*, s16*, f32*, f32) { + return 0; } // fopAcM_carryOffRevise__FP10fopAc_ac_c @@ -1153,17 +1345,27 @@ asm s32 fopAcM_carryOffRevise(fopAc_ac_c*) { } // vectle_calc__FPC10DOUBLE_POSP4cXyz -// vectle_calc(const DOUBLE_POS*, cXyz*) -asm void vectle_calc(const DOUBLE_POS*, cXyz*) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001D32C.s" +void vectle_calc(const DOUBLE_POS* pDpos, cXyz* pOut) { + f64 len = sqrt(pDpos->x * pDpos->x + pDpos->y * pDpos->y + pDpos->z * pDpos->z); + if (DOUBLE_LABEL(/* 0.0 */ lbl_80451C18) != len) { + pOut->x = pDpos->x / len; + pOut->y = pDpos->y / len; + pOut->z = pDpos->z / len; + } else { + f32 tmp0 = FLOAT_LABEL(lbl_80451C04); + pOut->x = tmp0; + pOut->y = tmp0; + pOut->z = tmp0; + } } // get_vectle_calc__FPC4cXyzPC4cXyzP4cXyz -// get_vectle_calc(const cXyz*, const cXyz*, cXyz*) -asm void get_vectle_calc(const cXyz*, const cXyz*, cXyz*) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001D3D4.s" +void get_vectle_calc(const cXyz* pXyzA, const cXyz* pXyzB, cXyz* pOut) { + DOUBLE_POS dPos; + dPos.x = pXyzB->x - pXyzA->x; + dPos.y = pXyzB->y - pXyzA->y; + dPos.z = pXyzB->z - pXyzA->z; + vectle_calc(&dPos, pOut); } const Mtx lbl_80378898 = { @@ -1180,10 +1382,9 @@ asm void fopAcM_setEffectMtx(const fopAc_ac_c*, const J3DModelData*) { } // fopAcM_getProcNameString__FPC10fopAc_ac_c -// fopAcM_getProcNameString(const fopAc_ac_c*) -asm const char* fopAcM_getProcNameString(const fopAc_ac_c*) { - nofralloc -#include "f/f_op/f_op_actor_mng/asm/func_8001D5A4.s" +const char* fopAcM_getProcNameString(const fopAc_ac_c* pActor) { + const char* name = dStage_getName2(pActor->mBsTypeId, pActor->unk_0x499); + return name != NULL ? name : "UNKOWN"; } // fopAcM_findObjectCB__FPC10fopAc_ac_cPv