1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-25 06:06:05 +00:00

Match some graphics functions

This commit is contained in:
Sirius902 2020-09-30 22:27:47 -07:00
parent 6dd443c0e3
commit 2453af9697
4 changed files with 45 additions and 11 deletions

View file

@ -1,4 +1,4 @@
glabel func_80A77BF8
glabel EnIk_OverrideLimbDraw
/* 038E8 80A77BF8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 038EC 80A77BFC 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
/* 038F0 80A77C00 AFBF0014 */ sw $ra, 0x0014($sp)

View file

@ -48,7 +48,7 @@ glabel jtbl_80A78A3C
.word 0x00000000
.text
glabel func_80A77C7C
glabel EnIk_PostLimbDraw
/* 0396C 80A77C7C 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 03970 80A77C80 AFBF001C */ sw $ra, 0x001C($sp)
/* 03974 80A77C84 AFB00018 */ sw $s0, 0x0018($sp)

View file

@ -85,12 +85,12 @@ glabel func_80A77EDC
/* 03CF0 80A78000 0C29D86C */ jal func_80A761B0
/* 03CF4 80A78004 AFA20038 */ sw $v0, 0x0038($sp)
/* 03CF8 80A78008 8FA30038 */ lw $v1, 0x0038($sp)
/* 03CFC 80A7800C 3C1980A7 */ lui $t9, %hi(func_80A77BF8) ## $t9 = 80A70000
/* 03D00 80A78010 3C0880A7 */ lui $t0, %hi(func_80A77C7C) ## $t0 = 80A70000
/* 03CFC 80A7800C 3C1980A7 */ lui $t9, %hi(EnIk_OverrideLimbDraw) ## $t9 = 80A70000
/* 03D00 80A78010 3C0880A7 */ lui $t0, %hi(EnIk_PostLimbDraw) ## $t0 = 80A70000
/* 03D04 80A78014 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 03D08 80A78018 8FA30068 */ lw $v1, 0x0068($sp)
/* 03D0C 80A7801C 25087C7C */ addiu $t0, $t0, %lo(func_80A77C7C) ## $t0 = 80A77C7C
/* 03D10 80A78020 27397BF8 */ addiu $t9, $t9, %lo(func_80A77BF8) ## $t9 = 80A77BF8
/* 03D0C 80A7801C 25087C7C */ addiu $t0, $t0, %lo(EnIk_PostLimbDraw) ## $t0 = 80A77C7C
/* 03D10 80A78020 27397BF8 */ addiu $t9, $t9, %lo(EnIk_OverrideLimbDraw) ## $t9 = 80A77BF8
/* 03D14 80A78024 2462014C */ addiu $v0, $v1, 0x014C ## $v0 = 0000014C
/* 03D18 80A78028 8C450004 */ lw $a1, 0x0004($v0) ## 00000150
/* 03D1C 80A7802C 8C460020 */ lw $a2, 0x0020($v0) ## 0000016C

View file

@ -38,6 +38,9 @@ void func_80A76798(Actor* thisx, GlobalContext* globalCtx);
void func_80A780D0(EnIk* this, GlobalContext* globalCtx);
void func_80A78160(EnIk* this, GlobalContext* globalCtx);
s32 EnIk_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor);
void EnIk_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor);
extern AnimationHeader D_0600C114;
extern AnimationHeader D_0600DD50;
extern SkeletonHeader D_0601E178;
@ -252,7 +255,20 @@ void func_80A7489C(EnIk* this) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A75FA0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A761B0.s")
Gfx* func_80A761B0(GraphicsContext* gfxCtx, u8 primR, u8 primG, u8 primB, u8 envR, u8 envG, u8 envB) {
Gfx* displayList;
Gfx* displayListHead;
displayList = Graph_Alloc(gfxCtx, 4 * sizeof(Gfx));
displayListHead = displayList;
gDPPipeSync(displayListHead++);
gDPSetPrimColor(displayListHead++, 0, 0, primR, primG, primB, 255);
gDPSetEnvColor(displayListHead++, envR, envG, envB, 255);
gSPEndDisplayList(displayListHead++);
return displayList;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A7626C.s")
@ -335,13 +351,31 @@ void EnIk_Update(Actor* thisx, GlobalContext* globalCtx) {
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77BF8.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/EnIk_OverrideLimbDraw.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77C7C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/EnIk_PostLimbDraw.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77ED0.s")
void func_80A77ED0(EnIk* this, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77EDC.s")
void func_80A77EDC(EnIk* this, GlobalContext* globalCtx) {
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
SkelAnime* skelAnime = &this->skelAnime;
s32 pad[2];
OPEN_DISPS(gfxCtx, "../z_en_ik_inConfrontion.c", 630);
func_8002EBCC(&this->actor, globalCtx, 0);
func_80093D18(gfxCtx);
func_80093D84(gfxCtx);
gSPSegment(oGfxCtx->polyOpa.p++, 0x08, func_80A761B0(gfxCtx, 245, 225, 155, 30, 30, 0));
gSPSegment(oGfxCtx->polyOpa.p++, 0x09, func_80A761B0(gfxCtx, 255, 40, 0, 40, 0, 0));
gSPSegment(oGfxCtx->polyOpa.p++, 0x0A, func_80A761B0(gfxCtx, 255, 255, 255, 20, 40, 30));
SkelAnime_DrawSV(globalCtx, skelAnime->skeleton, skelAnime->limbDrawTbl, skelAnime->dListCount,
EnIk_OverrideLimbDraw, EnIk_PostLimbDraw, &this->actor);
CLOSE_DISPS(gfxCtx, "../z_en_ik_inConfrontion.c", 653);
}
void EnIk_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnIk* this = THIS;