Some fopAcM functions (#116)

* some fopAcM_create functions

* a few more functions
This commit is contained in:
lepelog 2021-02-26 15:19:46 +01:00 committed by GitHub
parent c262bbfc4d
commit 368135b3da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 320 additions and 698 deletions

View File

@ -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)

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,2 +0,0 @@
/* 8001D1F4 0001A134 38 60 00 00 */ li r3, 0
/* 8001D1F8 0001A138 4E 80 00 20 */ blr

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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<s16>(cM_atan2f(tmp4, y) * 10430.378f));
mAngle2.Val(static_cast<s16>(cM_atan2f(x, z) * 10430.378f));
this->Formal();

View File

@ -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;

View File

@ -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*);

View File

@ -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<fopAc_ac_c*>(
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, &param_6, &param_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, &param_6, &param_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<fopAc_ac_c*>(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<fopAc_ac_c*>(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<s16>(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<fopAc_ac_c*>(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