mirror of https://github.com/zeldaret/tp.git
JASSeqReader, d_bg_s_movebg_actor ok (#332)
match cc_at_check except data
This commit is contained in:
parent
93057e5c87
commit
ac269f04ba
|
@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
|
|||
.init | 97.972973% | 9280 | 9472
|
||||
.extab | 100.000000% | 96 | 96
|
||||
.extabindex | 100.000000% | 96 | 96
|
||||
.text | 26.671605% | 959256 | 3596544
|
||||
.text | 26.682615% | 959652 | 3596544
|
||||
.ctors | 100.000000% | 448 | 448
|
||||
.dtors | 100.000000% | 32 | 32
|
||||
.rodata | 100.000000% | 193856 | 193856
|
||||
.data | 100.000000% | 197632 | 197632
|
||||
.sdata | 100.000000% | 1408 | 1408
|
||||
.sdata2 | 100.000000% | 20832 | 20832
|
||||
Total | 34.402010% | 1383192 | 4020672
|
||||
Total | 34.411860% | 1383588 | 4020672
|
||||
|
||||
## Total
|
||||
|
||||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 34.402010% | 1383192 | 4020672
|
||||
main.dol | 34.411860% | 1383588 | 4020672
|
||||
RELs | 33.562950% | 3859848 | 11500324
|
||||
Total | 33.780306% | 5243040 | 15520996
|
||||
Total | 33.782858% | 5243436 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
lbl_80296210:
|
||||
/* 80296210 80 03 00 08 */ lwz r0, 8(r3)
|
||||
/* 80296214 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80296218 40 82 00 0C */ bne lbl_80296224
|
||||
/* 8029621C 38 60 00 00 */ li r3, 0
|
||||
/* 80296220 4E 80 00 20 */ blr
|
||||
lbl_80296224:
|
||||
/* 80296224 54 00 08 3C */ slwi r0, r0, 1
|
||||
/* 80296228 7C 83 02 14 */ add r4, r3, r0
|
||||
/* 8029622C A0 A4 00 2A */ lhz r5, 0x2a(r4)
|
||||
/* 80296230 28 05 00 00 */ cmplwi r5, 0
|
||||
/* 80296234 41 82 00 0C */ beq lbl_80296240
|
||||
/* 80296238 38 05 FF FF */ addi r0, r5, -1
|
||||
/* 8029623C 54 05 04 3E */ clrlwi r5, r0, 0x10
|
||||
lbl_80296240:
|
||||
/* 80296240 54 A0 04 3F */ clrlwi. r0, r5, 0x10
|
||||
/* 80296244 40 82 00 18 */ bne lbl_8029625C
|
||||
/* 80296248 80 83 00 08 */ lwz r4, 8(r3)
|
||||
/* 8029624C 38 04 FF FF */ addi r0, r4, -1
|
||||
/* 80296250 90 03 00 08 */ stw r0, 8(r3)
|
||||
/* 80296254 38 60 00 01 */ li r3, 1
|
||||
/* 80296258 4E 80 00 20 */ blr
|
||||
lbl_8029625C:
|
||||
/* 8029625C B0 A4 00 2A */ sth r5, 0x2a(r4)
|
||||
/* 80296260 80 03 00 08 */ lwz r0, 8(r3)
|
||||
/* 80296264 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80296268 7C 83 02 14 */ add r4, r3, r0
|
||||
/* 8029626C 80 04 00 08 */ lwz r0, 8(r4)
|
||||
/* 80296270 90 03 00 04 */ stw r0, 4(r3)
|
||||
/* 80296274 38 60 00 01 */ li r3, 1
|
||||
/* 80296278 4E 80 00 20 */ blr
|
|
@ -1,78 +0,0 @@
|
|||
lbl_800787BC:
|
||||
/* 800787BC 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 800787C0 7C 08 02 A6 */ mflr r0
|
||||
/* 800787C4 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 800787C8 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 800787CC 48 2E 9A 09 */ bl _savegpr_27
|
||||
/* 800787D0 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 800787D4 7C 9B 23 78 */ mr r27, r4
|
||||
/* 800787D8 7C BC 2B 78 */ mr r28, r5
|
||||
/* 800787DC 7C DD 33 78 */ mr r29, r6
|
||||
/* 800787E0 7C FE 3B 78 */ mr r30, r7
|
||||
/* 800787E4 28 08 00 00 */ cmplwi r8, 0
|
||||
/* 800787E8 40 82 00 50 */ bne lbl_80078838
|
||||
/* 800787EC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 800787F0 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 800787F4 C0 3F 04 D0 */ lfs f1, 0x4d0(r31)
|
||||
/* 800787F8 C0 5F 04 D4 */ lfs f2, 0x4d4(r31)
|
||||
/* 800787FC C0 7F 04 D8 */ lfs f3, 0x4d8(r31)
|
||||
/* 80078800 48 2C E0 E9 */ bl PSMTXTrans
|
||||
/* 80078804 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80078808 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 8007880C A8 9F 04 E6 */ lha r4, 0x4e6(r31)
|
||||
/* 80078810 4B F9 3C 25 */ bl mDoMtx_YrotM__FPA4_fs
|
||||
/* 80078814 C0 3F 04 EC */ lfs f1, 0x4ec(r31)
|
||||
/* 80078818 C0 5F 04 F0 */ lfs f2, 0x4f0(r31)
|
||||
/* 8007881C C0 7F 04 F4 */ lfs f3, 0x4f4(r31)
|
||||
/* 80078820 4B F9 46 19 */ bl scaleM__14mDoMtx_stack_cFfff
|
||||
/* 80078824 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80078828 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 8007882C 38 9F 05 6C */ addi r4, r31, 0x56c
|
||||
/* 80078830 48 2C DC 81 */ bl PSMTXCopy
|
||||
/* 80078834 48 00 00 10 */ b lbl_80078844
|
||||
lbl_80078838:
|
||||
/* 80078838 7D 03 43 78 */ mr r3, r8
|
||||
/* 8007883C 38 9F 05 6C */ addi r4, r31, 0x56c
|
||||
/* 80078840 48 2C DC 71 */ bl PSMTXCopy
|
||||
lbl_80078844:
|
||||
/* 80078844 93 6D 89 F0 */ stw r27, m_name__16dBgS_MoveBgActor(r13)
|
||||
/* 80078848 93 8D 89 F4 */ stw r28, m_dzb_id__16dBgS_MoveBgActor(r13)
|
||||
/* 8007884C 93 AD 89 F8 */ stw r29, m_set_func__16dBgS_MoveBgActor(r13)
|
||||
/* 80078850 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80078854 3C 80 80 08 */ lis r4, CheckCreateHeap__FP10fopAc_ac_c@ha /* 0x80078668@ha */
|
||||
/* 80078858 38 84 86 68 */ addi r4, r4, CheckCreateHeap__FP10fopAc_ac_c@l /* 0x80078668@l */
|
||||
/* 8007885C 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80078860 4B FA 1C 51 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl
|
||||
/* 80078864 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 80078868 40 82 00 0C */ bne lbl_80078874
|
||||
/* 8007886C 38 60 00 05 */ li r3, 5
|
||||
/* 80078870 48 00 00 54 */ b lbl_800788C4
|
||||
lbl_80078874:
|
||||
/* 80078874 80 9F 05 68 */ lwz r4, 0x568(r31)
|
||||
/* 80078878 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 8007887C 41 82 00 28 */ beq lbl_800788A4
|
||||
/* 80078880 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80078884 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80078888 38 63 0F 38 */ addi r3, r3, 0xf38
|
||||
/* 8007888C 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80078890 4B FF C1 79 */ bl Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c
|
||||
/* 80078894 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 80078898 41 82 00 0C */ beq lbl_800788A4
|
||||
/* 8007889C 38 60 00 05 */ li r3, 5
|
||||
/* 800788A0 48 00 00 24 */ b lbl_800788C4
|
||||
lbl_800788A4:
|
||||
/* 800788A4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 800788A8 81 9F 05 9C */ lwz r12, 0x59c(r31)
|
||||
/* 800788AC 81 8C 00 0C */ lwz r12, 0xc(r12)
|
||||
/* 800788B0 7D 89 03 A6 */ mtctr r12
|
||||
/* 800788B4 4E 80 04 21 */ bctrl
|
||||
/* 800788B8 20 03 00 00 */ subfic r0, r3, 0
|
||||
/* 800788BC 7C 60 01 10 */ subfe r3, r0, r0
|
||||
/* 800788C0 38 63 00 05 */ addi r3, r3, 5
|
||||
lbl_800788C4:
|
||||
/* 800788C4 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 800788C8 48 2E 99 59 */ bl _restgpr_27
|
||||
/* 800788CC 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 800788D0 7C 08 03 A6 */ mtlr r0
|
||||
/* 800788D4 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 800788D8 4E 80 00 20 */ blr
|
|
@ -23,7 +23,7 @@ public:
|
|||
/* 0x04 */ u8* field_0x04;
|
||||
/* 0x08 */ u32 field_0x08;
|
||||
/* 0x0C */ u16* field_0x0c[8];
|
||||
/* 0x2C */ s16 field_0x2c[8];
|
||||
/* 0x2C */ u16 field_0x2c[8];
|
||||
};
|
||||
|
||||
#endif /* JASSEQREADER_H */
|
||||
|
|
|
@ -4,12 +4,8 @@
|
|||
*/
|
||||
|
||||
#include "JSystem/JAudio2/JASSeqReader.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
||||
extern "C" void loopEnd__12JASSeqReaderFv();
|
||||
|
||||
/* 80296108-80296148 290A48 0040+00 0/0 2/2 0/0 .text init__12JASSeqReaderFv */
|
||||
void JASSeqReader::init() {
|
||||
field_0x00 = 0;
|
||||
|
@ -17,7 +13,7 @@ void JASSeqReader::init() {
|
|||
field_0x08 = 0;
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
field_0x0c[i] = 0;
|
||||
field_0x0c[i] = NULL;
|
||||
field_0x2c[i] = 0;
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +25,7 @@ void JASSeqReader::init(void* param_0) {
|
|||
field_0x08 = 0;
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
field_0x0c[i] = 0;
|
||||
field_0x0c[i] = NULL;
|
||||
field_0x2c[i] = 0;
|
||||
}
|
||||
|
||||
|
@ -37,15 +33,11 @@ void JASSeqReader::init(void* param_0) {
|
|||
|
||||
/* 8029618C-802961CC 290ACC 0040+00 0/0 3/3 0/0 .text call__12JASSeqReaderFUl */
|
||||
bool JASSeqReader::call(u32 param_0) {
|
||||
if (8 <= field_0x08) {
|
||||
if (field_0x08 >= 8) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u16* tmp2 = (u16*)field_0x04;
|
||||
u32 tmp = field_0x08;
|
||||
|
||||
field_0x08++;
|
||||
field_0x0c[tmp] = tmp2;
|
||||
field_0x0c[field_0x08++] = (u16*)field_0x04;
|
||||
field_0x04 = (u8*)((int)field_0x00 + param_0);
|
||||
|
||||
return true;
|
||||
|
@ -58,24 +50,19 @@ bool JASSeqReader::loopStart(u32 param_0) {
|
|||
}
|
||||
|
||||
field_0x0c[field_0x08] = (u16*)field_0x04;
|
||||
|
||||
u32 tmp = field_0x08;
|
||||
field_0x08 = tmp+1;
|
||||
field_0x2c[tmp] = param_0;
|
||||
field_0x2c[field_0x08++] = param_0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* 80296210-8029627C 290B50 006C+00 0/0 1/1 0/0 .text loopEnd__12JASSeqReaderFv */
|
||||
#ifdef NONMATCHING
|
||||
// not sure. field_0x0c is typed wrong maybe?
|
||||
int JASSeqReader::loopEnd() {
|
||||
bool JASSeqReader::loopEnd() {
|
||||
if (field_0x08 == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u16 tmp = (u16)field_0x0c[field_0x08];
|
||||
u16 tmp = field_0x2c[field_0x08 - 1];
|
||||
|
||||
if (tmp != 0) {
|
||||
tmp--;
|
||||
|
@ -86,32 +73,18 @@ int JASSeqReader::loopEnd() {
|
|||
return true;
|
||||
}
|
||||
|
||||
field_0x0c[field_0x08] = (u16*)tmp;
|
||||
field_0x04 = (u8*)field_0x0c[field_0x08-1];
|
||||
field_0x2c[field_0x08 - 1] = tmp;
|
||||
field_0x04 = (u8*)field_0x0c[field_0x08 - 1];
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool JASSeqReader::loopEnd() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASSeqReader/loopEnd__12JASSeqReaderFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029627C-802962B0 290BBC 0034+00 0/0 2/2 0/0 .text ret__12JASSeqReaderFv */
|
||||
bool JASSeqReader::ret() {
|
||||
u32 tmp = field_0x08;
|
||||
|
||||
if (tmp == 0) {
|
||||
if (field_0x08 == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
tmp--;
|
||||
field_0x08 = tmp;
|
||||
field_0x04 = (u8*)field_0x0c[tmp];
|
||||
field_0x04 = (u8*)field_0x0c[--field_0x08];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -146,4 +119,4 @@ int JASSeqReader::readMidiValue() {
|
|||
}
|
||||
|
||||
return byte;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
|
||||
#include "d/bg/d_bg_s_movebg_actor.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
|
@ -13,45 +12,10 @@
|
|||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__16dBgS_MoveBgActorFv();
|
||||
extern "C" static void CheckCreateHeap__FP10fopAc_ac_c();
|
||||
extern "C" bool CreateHeap__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool Create__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool Execute__16dBgS_MoveBgActorFPPA3_A4_f();
|
||||
extern "C" bool Draw__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool Delete__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
|
||||
extern "C" void MoveBGCreateHeap__16dBgS_MoveBgActorFv();
|
||||
extern "C" void
|
||||
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
|
||||
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
|
||||
extern "C" u8 m_name__16dBgS_MoveBgActor[4];
|
||||
extern "C" u8 m_dzb_id__16dBgS_MoveBgActor[4];
|
||||
extern "C" u8 m_set_func__16dBgS_MoveBgActor[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void scaleM__14mDoMtx_stack_cFfff();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void Release__4cBgSFP9dBgW_Base();
|
||||
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
|
||||
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
|
||||
extern "C" void __ct__4dBgWFv();
|
||||
extern "C" void Move__4dBgWFv();
|
||||
extern "C" void ChkUsed__9cBgW_BgIdCFv();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
@ -150,7 +114,6 @@ int dBgS_MoveBgActor::MoveBGCreateHeap() {
|
|||
* MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f
|
||||
*/
|
||||
// close
|
||||
#ifdef NONMATCHING
|
||||
int dBgS_MoveBgActor::MoveBGCreate(char const* p_name, int dzb_id, MoveBGActor_SetFunc set_func,
|
||||
u32 param_3, Mtx* param_4) {
|
||||
if (param_4 == NULL) {
|
||||
|
@ -169,24 +132,13 @@ int dBgS_MoveBgActor::MoveBGCreate(char const* p_name, int dzb_id, MoveBGActor_S
|
|||
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, param_3)) {
|
||||
return 5;
|
||||
} else {
|
||||
if (field_0x568 == NULL || dComIfG_Bgsp().Regist(field_0x568, this)) {
|
||||
if (field_0x568 != NULL && dComIfG_Bgsp().Regist(field_0x568, this)) {
|
||||
return 5;
|
||||
} else {
|
||||
return Create() + 5;
|
||||
return Create() ? 4 : 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dBgS_MoveBgActor::MoveBGCreate(char const* param_0, int param_1, MoveBGActor_SetFunc,
|
||||
u32 param_3, Mtx* param_4) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_s_movebg_actor/func_800787BC.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800788DC-80078950 07321C 0074+00 0/0 0/0 169/169 .text MoveBGDelete__16dBgS_MoveBgActorFv */
|
||||
int dBgS_MoveBgActor::MoveBGDelete() {
|
||||
|
|
|
@ -439,12 +439,14 @@ SECTION_SDATA2 static f32 lit_4218[1 + 1 /* padding */] = {
|
|||
|
||||
/* 80087C04-80088134 082544 0530+00 0/0 0/0 84/84 .text cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo
|
||||
*/
|
||||
// just float reg issues
|
||||
// data padding issues (?)
|
||||
#ifdef NONMATCHING
|
||||
fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) {
|
||||
daPy_py_c* link = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
p_info->mpActor = at_power_check(p_info);
|
||||
|
||||
f32 x_diff;
|
||||
f32 z_diff;
|
||||
if (p_info->mpActor != NULL) {
|
||||
cXyz tmp = p_info->mpActor->speed;
|
||||
tmp.y = 0.0f;
|
||||
|
@ -454,12 +456,12 @@ fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) {
|
|||
p_info->mHitDirection = cM_atan2s(-x, -z) + (s16)cM_rndFX(4000.0f);
|
||||
} else {
|
||||
if (fopAcM_GetName(p_info->mpActor) == PROC_BOOMERANG) {
|
||||
f32 x_diff = p_enemy->current.pos.x - link->current.pos.x;
|
||||
f32 z_diff = p_enemy->current.pos.z - link->current.pos.z;
|
||||
x_diff = p_enemy->current.pos.x - link->current.pos.x;
|
||||
z_diff = p_enemy->current.pos.z - link->current.pos.z;
|
||||
p_info->mHitDirection = cM_atan2s(-x_diff, -z_diff) + (s16)cM_rndFX(10000.0f);
|
||||
} else {
|
||||
f32 x_diff = p_enemy->current.pos.x - p_info->mpActor->current.pos.x;
|
||||
f32 z_diff = p_enemy->current.pos.z - p_info->mpActor->current.pos.z;
|
||||
x_diff = p_enemy->current.pos.x - p_info->mpActor->current.pos.x;
|
||||
z_diff = p_enemy->current.pos.z - p_info->mpActor->current.pos.z;
|
||||
p_info->mHitDirection = cM_atan2s(-x_diff, -z_diff);
|
||||
}
|
||||
}
|
||||
|
@ -500,13 +502,13 @@ fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) {
|
|||
}
|
||||
|
||||
if (p_info->mAttackPower != 0) {
|
||||
p_enemy->field_0x562 -= p_info->mAttackPower;
|
||||
p_enemy->mHealth -= p_info->mAttackPower;
|
||||
}
|
||||
|
||||
s8 pause_time = 0;
|
||||
if (p_info->mAttackPower != 0 && p_enemy->field_0x562 <= 0) {
|
||||
if (p_info->mAttackPower != 0 && p_enemy->mHealth <= 0) {
|
||||
p_info->mHitStatus = 2;
|
||||
p_enemy->field_0x562 = 0;
|
||||
p_enemy->mHealth = 0;
|
||||
}
|
||||
|
||||
int uvar8;
|
||||
|
@ -539,7 +541,7 @@ fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) {
|
|||
((daPy_py_c*)dComIfGp_getPlayer(0))->checkHorseRide()) {
|
||||
// actor is Bulblin or Horseback Ganon
|
||||
if ((fopAcM_GetName(p_enemy) == PROC_E_RD &&
|
||||
static_cast<e_rd_class*>(p_enemy)->field_0x129a != 0) ||
|
||||
((s8*)p_enemy)[0x129a] != 0) ||
|
||||
fopAcM_GetName(p_enemy) == PROC_B_GND) {
|
||||
pause_time = 3;
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue