mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
BossHakugin_Draw OK
This commit is contained in:
@@ -44,6 +44,10 @@ void func_80B09F7C(BossHakugin* this);
|
||||
void func_80B08550(BossHakugin* this, PlayState* play);
|
||||
void func_80B08848(BossHakugin* this, PlayState* play);
|
||||
|
||||
void func_80B0E5A4(BossHakugin* this, PlayState* play);
|
||||
void func_80B0D69C(UNK_PTR arg0, BossHakugin* this);
|
||||
void func_80B0D750(UNK_PTR arg0, BossHakugin* this, PlayState* play);
|
||||
|
||||
#if 0
|
||||
ActorInit Boss_Hakugin_InitVars = {
|
||||
ACTOR_BOSS_HAKUGIN,
|
||||
@@ -467,6 +471,7 @@ void func_80B06C08(BossHakugin* this);
|
||||
void func_80B06D38(BossHakugin* this, PlayState* play);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B06D38.s")
|
||||
|
||||
void func_80B06F48(BossHakugin* this, PlayState* play);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B06F48.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0728C.s")
|
||||
@@ -915,28 +920,86 @@ void func_80B09EDC(BossHakugin* this, PlayState* play) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/BossHakugin_Update.s")
|
||||
|
||||
s32 func_80B0C000(struct PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, struct Actor* thisx);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0C000.s")
|
||||
|
||||
void func_80B0C1BC(struct PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, struct Actor* thisx);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0C1BC.s")
|
||||
|
||||
void func_80B0C398(BossHakugin* this, PlayState* play);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0C398.s")
|
||||
|
||||
void func_80B0C570(BossHakugin* this, PlayState* play);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0C570.s")
|
||||
|
||||
void func_80B0C7B0(BossHakugin* this, PlayState* play);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0C7B0.s")
|
||||
|
||||
void func_80B0CAF0(BossHakugin* this, PlayState* play);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0CAF0.s")
|
||||
|
||||
void func_80B0CCD8(BossHakugin* this, PlayState* play);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0CCD8.s")
|
||||
|
||||
void func_80B0CF24(BossHakugin* this, PlayState* play);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0CF24.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/BossHakugin_Draw.s")
|
||||
void BossHakugin_Draw(Actor* thisx, PlayState* play) {
|
||||
s32 pad;
|
||||
BossHakugin* this = (BossHakugin*)thisx;
|
||||
UNK_PTR sp34 = GRAPH_ALLOC(play->state.gfxCtx, 0x1000);
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
Gfx_SetupDL25_Opa(play->state.gfxCtx);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, D_80B0EA88);
|
||||
SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
|
||||
func_80B0C000, func_80B0C1BC, &this->actor);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
|
||||
Actor_DrawDamageEffects(play, &this->actor, this->bodyPartsPos, ARRAY_COUNT(this->bodyPartsPos), this->unk_01DC,
|
||||
this->unk_01E0, this->unk_01E4, this->unk_0196);
|
||||
|
||||
SkinMatrix_Vec3fMtxFMultXYZ(&play->viewProjectionMtxF, &this->unk_0380, &this->unk_0458);
|
||||
SkinMatrix_Vec3fMtxFMultXYZ(&play->viewProjectionMtxF, &this->unk_3734, &this->unk_0464);
|
||||
|
||||
if (this->unk_0190 == 0) {
|
||||
func_80B06F48(this, play);
|
||||
}
|
||||
this->unk_0190 = 1;
|
||||
|
||||
if (this->actor.colorFilterTimer != 0) {
|
||||
func_800AE5A0(play);
|
||||
}
|
||||
|
||||
if (this->actionFunc == func_80B0A8C4) {
|
||||
func_80B0E5A4(this, play);
|
||||
} else {
|
||||
func_80B0C398(this, play);
|
||||
}
|
||||
|
||||
func_80B0C570(this, play);
|
||||
func_80B0C7B0(this, play);
|
||||
func_80B0CAF0(this, play);
|
||||
func_80B0CCD8(this, play);
|
||||
|
||||
if (this->unk_0193 > 0) {
|
||||
func_80B0CF24(this, play);
|
||||
}
|
||||
|
||||
if (this->actionFunc != func_80B0A8C4) {
|
||||
func_80B0D69C(sp34, this);
|
||||
func_80B0D750(sp34, this, play);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0D2B8.s")
|
||||
|
||||
void func_80B0D69C(UNK_PTR arg0, BossHakugin* this);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0D69C.s")
|
||||
|
||||
void func_80B0D750(UNK_PTR arg0, BossHakugin* this, PlayState* play);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0D750.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0D9CC.s")
|
||||
|
||||
@@ -35,11 +35,14 @@ typedef struct BossHakugin {
|
||||
/* 0x0188 */ BossHakuginActionFunc actionFunc;
|
||||
/* 0x018C */ char unk_018C[0x1];
|
||||
/* 0x018D */ s8 unk_018D;
|
||||
/* 0x018E */ char unk_018E[3];
|
||||
/* 0x018E */ char unk_018E[2];
|
||||
/* 0x0190 */ u8 unk_0190; // boolean?
|
||||
/* 0x0191 */ u8 unk_0191;
|
||||
/* 0x0192 */ char unk_0192[0x1];
|
||||
/* 0x0193 */ u8 unk_0193;
|
||||
/* 0x0194 */ char unk_0194[0x8];
|
||||
/* 0x0194 */ char unk_0194[2];
|
||||
/* 0x0196 */ u8 unk_0196;
|
||||
/* 0x0197 */ char unk_0197[0x5];
|
||||
/* 0x019C */ s16 unk_019C;
|
||||
/* 0x019E */ s16 unk_019E;
|
||||
/* 0x01A0 */ s16 unk_01A0;
|
||||
@@ -56,12 +59,15 @@ typedef struct BossHakugin {
|
||||
/* 0x01C8 */ f32 unk_01C8;
|
||||
/* 0x01CC */ char unk_01CC[0x8];
|
||||
/* 0x01D4 */ f32 unk_01D4;
|
||||
/* 0x01D8 */ char unk_01D8[0x10];
|
||||
/* 0x01D8 */ char unk_01D8[0x4];
|
||||
/* 0x01DC */ f32 unk_01DC;
|
||||
/* 0x01E0 */ f32 unk_01E0;
|
||||
/* 0x01E4 */ f32 unk_01E4;
|
||||
/* 0x01E8 */ Vec3s jointTable[33];
|
||||
/* 0x02AE */ Vec3s morphTable[33];
|
||||
/* 0x0374 */ char unk_0374[0x6];
|
||||
/* 0x037A */ Vec3s unk_037A;
|
||||
/* 0x0380 */ char unk_0380[0xC];
|
||||
/* 0x0380 */ Vec3f unk_0380;
|
||||
/* 0x038C */ Vec3f unk_038C;
|
||||
/* 0x0398 */ Vec3f bodyPartsPos[15];
|
||||
/* 0x044C */ char unk_044C[0xC];
|
||||
@@ -78,7 +84,8 @@ typedef struct BossHakugin {
|
||||
/* 0x09F8 */ BossHakuginEffect unk_09F8[BOSS_HAKUGIN_EFFECT_COUNT];
|
||||
/* 0x2618 */ BossHakuginUnkStruct_2618 unk_2618[20];
|
||||
/* 0x3158 */ BossHakuginFhgFlashUnkStruct unk_3158[5][15];
|
||||
/* 0x3734 */ char unk_3734[0x84];
|
||||
/* 0x3734 */ Vec3f unk_3734;
|
||||
/* 0x3740 */ char unk_3740[0x78];
|
||||
/* 0x37B8 */ ColliderSphere unk_37B8;
|
||||
} BossHakugin; // size = 0x3810
|
||||
|
||||
|
||||
@@ -93,8 +93,8 @@ void EnHakurock_Destroy(Actor* thisx, PlayState* play) {
|
||||
void func_80B21BE0(BossHakugin* parent, Vec3f* arg1, s32 arg2) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(parent->unk_9F8); i++) {
|
||||
BossHakuginEffect* gohtEffect = &parent->unk_9F8[i];
|
||||
for (i = 0; i < ARRAY_COUNT(parent->unk_09F8); i++) {
|
||||
BossHakuginEffect* gohtEffect = &parent->unk_09F8[i];
|
||||
if (gohtEffect->unk_18 < 0) {
|
||||
s16 sp2E;
|
||||
s16 sp2C;
|
||||
|
||||
Reference in New Issue
Block a user