Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions src/melee/vi/vi0401.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,76 @@

#include "vi.h"

#include <placeholder.h>

#include "baselib/forward.h"

#include "cm/camera.h"
#include "ft/ftdemo.h"
#include "gm/gm_17C0.h"
#include "gm/gm_1A36.h"
#include "gm/gm_1A45.h"
#include "gm/gm_unsplit.h"
#include "gr/ground.h"
#include "gr/stage.h"
#include "it/item.h"
#include "lb/lb_00F9.h"
#include "lb/lbaudio_ax.h"
#include "mp/mpcoll.h"
#include "pl/player.h"

#include <baselib/aobj.h>
#include <baselib/cobj.h>
#include <baselib/gobj.h>
#include <baselib/jobj.h>

typedef struct un_804D6F58_t {
char pad[0x38];
Vec3 x38;
} un_804D6F58_t;

extern HSD_Archive* un_804D6F54;
extern un_804D6F58_t* un_804D6F58;

static GXColor erase_colors_vi0401;

void un_8031D030(CharacterKind char_kind, int costume)
{
Vec3 pos;

Camera_80028B9C(6);
lb_8000FCDC();
mpColl_80041C78();
Ground_801C0378(0x40);
Stage_802251E8(6, 0);
Item_80266FA8();
Item_80266FCC();
Stage_8022524C();
Stage_8022532C(6, 0);

ftDemo_ObjAllocInit();
Player_InitAllPlayers();

Player_80036E20(char_kind, un_804D6F54, 3);
Player_SetPlayerCharacter(0, char_kind);
Player_SetCostumeId(0, costume);
Player_SetPlayerId(0, 0);
Player_SetSlottype(0, Gm_PKind_Demo);
Player_SetFacingDirection(0, 1.0f);

pos.x = un_804D6F58->x38.x;
pos.y = un_804D6F58->x38.y;
pos.z = un_804D6F58->x38.z;
Player_80032768(0, &pos);
Player_80036F34(0, 8);

lbAudioAx_80026F2C(0x18);
lbAudioAx_8002702C(8, 0x10000000000ULL);
lbAudioAx_80027168();
lbAudioAx_80027648();
lbAudioAx_80024634(0x88);
}

static void vi0401_8031D18C(HSD_GObj* gobj)
{
HSD_JObjAnimAll(GET_JOBJ(gobj));
Expand Down Expand Up @@ -48,3 +106,19 @@ static void vi0401_8031D23C(HSD_GObj* gobj)
gm_801A4B60();
}
}

static void fn_8031D168(HSD_GObj* gobj)
{
HSD_JObjAnimAll(GET_JOBJ(gobj));
}

/// #un_8031D288_OnEnter

void un_8031D698_OnFrame(void)
{
u64 result = gm_801A36A0(gm_8017E430());
if ((result & 0x1000) != 0) {
lb_800145F4();
gm_801A4B60();
}
}
8 changes: 3 additions & 5 deletions src/melee/vi/vi0401.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@

#include <placeholder.h>

#include "ft/forward.h"

#include <baselib/forward.h>

/* 31D030 */ UNK_RET un_8031D030(UNK_PARAMS);
/* 31D168 */ UNK_RET fn_8031D168(UNK_PARAMS);
/* 31D18C */ static void vi0401_8031D18C(HSD_GObj*);
/* 31D1B0 */ static void vi0401_8031D1B0(HSD_GObj*, int);
/* 31D23C */ static void vi0401_8031D23C(HSD_GObj*);
/* 31D030 */ void un_8031D030(CharacterKind, int);
/* 31D288 */ void un_8031D288_OnEnter(UNK_T);
/* 31D698 */ void un_8031D698_OnFrame(void);

Expand Down
70 changes: 67 additions & 3 deletions src/melee/vi/vi0402.c
Original file line number Diff line number Diff line change
@@ -1,21 +1,55 @@
#include "vi/vi0402.h"

#include <placeholder.h>

#include "ef/efasync.h"
#include "ef/eflib.h"
#include "gm/gm_unsplit.h"
#include "lb/lb_00F9.h"
#include "lb/lbarchive.h"
#include "lb/lbaudio_ax.h"
#include "pl/player.h"
#include "sc/types.h"
#include "vi/vi.h"

#include <baselib/cobj.h>
#include <baselib/displayfunc.h>
#include <baselib/gobj.h>
#include <baselib/gobjgxlink.h>
#include <baselib/gobjobject.h>
#include <baselib/gobjproc.h>
#include <baselib/jobj.h>

extern SceneDesc* un_804D6F68;

void un_8031D6E4(HSD_GObj* gobj)
{
HSD_JObjAnimAll(GET_JOBJ(gobj));
}

/// #un_8031D708
void un_8031D708(void)
{
HSD_GObj* gobj;
HSD_JObj* jobj;
int i;

for (i = 0; un_804D6F68->models[i] != NULL; i++) {
gobj = GObj_Create(0xE, 0xF, 0);
jobj = HSD_JObjLoadJoint(un_804D6F68->models[i]->joint);
HSD_GObjObject_80390A70(gobj, HSD_GObj_804D7849, jobj);
GObj_SetupGXLink(gobj, HSD_GObj_JObjCallback, 3, 0);
gm_8016895C(jobj, un_804D6F68->models[i], 0);
HSD_JObjReqAnimAll(jobj, 0.0f);
HSD_JObjAnimAll(jobj);
HSD_GObjProc_8038FD54(gobj, un_8031D6E4, 0x17);
}

lbAudioAx_80026F2C(0x18);
lbAudioAx_8002702C(8, 0x10000000000ULL);
lbAudioAx_80027168();
lbAudioAx_80027648();
}

/// #vi_8031D80C
void vi_8031D80C(HSD_GObj* gobj)
{
HSD_AObj* aobj;
Expand All @@ -29,8 +63,38 @@ void vi_8031D80C(HSD_GObj* gobj)
}
}

/// #un_8031D858_OnEnter
void un_8031D858_OnEnter(void* arg0)
{
HSD_CObj* cobj;
HSD_GObj* cam_gobj;

lbAudioAx_800236DC();
efLib_8005B4B8();
efAsync_8006737C(0);
lbAudioAx_80023F28(0x58);
lbAudioAx_80024E50(1);
lbArchive_LoadSymbols("Vi0402.dat", &un_804D6F68, "visual0402Scene", NULL);
{
HSD_GObj* light_gobj = GObj_Create(0xB, 0x3, 0);
HSD_GObjObject_80390A70(light_gobj, HSD_GObj_804D784A, lb_80011AC4(un_804D6F68->lights));
GObj_SetupGXLink(light_gobj, HSD_GObj_LObjCallback, 0, 0);
}

cam_gobj = GObj_Create(0x13, 0x14, 0);
cobj = lb_80013B14((HSD_CameraDescPerspective*) un_804D6F68->cameras[0].desc);
HSD_GObjObject_80390A70(cam_gobj, HSD_GObj_804D784B, cobj);
GObj_SetupGXLinkMax(cam_gobj, HSD_GObj_803910D8, 8);
cam_gobj->gxlink_prios = 0x89;
HSD_CObjAddAnim(cobj, un_804D6F68->cameras[0].anims[0]);
HSD_CObjReqAnim(cobj, 0.0f);
HSD_CObjAnim(cobj);
HSD_GObjProc_8038FD54(cam_gobj, vi_8031D80C, 0);

un_8031D708();
vi_8031C9B4(0x22, 0);
Player_InitAllPlayers();
lbAudioAx_80024E50(0);
}
void vi_8031D9C4_OnFrame(void)
{
vi_8031CAAC();
Expand Down
4 changes: 2 additions & 2 deletions src/melee/vi/vi0402.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
#include <baselib/forward.h>

/* 31D6E4 */ void un_8031D6E4(HSD_GObj*);
/* 31D708 */ UNK_RET un_8031D708(UNK_PARAMS);
/* 31D708 */ void un_8031D708(void);
/* 31D80C */ void vi_8031D80C(HSD_GObj* gobj);
/* 31D858 */ void un_8031D858_OnEnter(UNK_T);
/* 31D858 */ void un_8031D858_OnEnter(void* arg0);
/* 31D9C4 */ void vi_8031D9C4_OnFrame(void);
/* 31D9E4 */ void un_8031D9E4(int arg0, int arg1, int arg2);
/* 4D6F84 */ extern u8 un_804D6F84[8];
Expand Down
37 changes: 35 additions & 2 deletions src/melee/vi/vi0501.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#include "vi0501.h"
#include "vi0501.static.h"

#include "gm/gm_1A36.h"
#include "gm/gm_1A45.h"
#include "lb/lbaudio_ax.h"
#include "lb/lb_00F9.h"
#include "lb/lbshadow.h"
#include "vi/vi.h"
Expand All @@ -23,8 +25,39 @@ void vi_8031DC80(HSD_GObj* gobj, int unused)
vi_RunCamera(gobj, (u8*) &erase_colors_vi0501, 0x281);
}

/// #fn_8031DD14
void fn_8031DD14(HSD_GObj* gobj)
{
HSD_CObj* cobj = GET_COBJ(gobj);
f32 frame;

HSD_CObjAnim(cobj);
frame = cobj->aobj->curr_frame;

if (un_804DE074 == frame || un_804DE078 == frame || un_804DE07C == frame) {
vi_8031C9B4(0xC, 0);
lbAudioAx_800237A8(0x222F9, 0x7F, 0x40);

if (un_804DE074 == cobj->aobj->curr_frame) {
lbAudioAx_800237A8(0x73, 0x7F, 0x40);
}
if (un_804DE078 == cobj->aobj->curr_frame) {
lbAudioAx_800237A8(0x74, 0x7F, 0x40);
}
if (un_804DE07C == cobj->aobj->curr_frame) {
lbAudioAx_800237A8(0x73, 0x7F, 0x40);
}
}

frame = cobj->aobj->curr_frame;
if (un_804DE080 == frame || un_804DE084 == frame || un_804DE088 == frame) {
lbAudioAx_800237A8(0x22308, 0x7F, 0x40);
}

if (cobj->aobj->curr_frame == cobj->aobj->end_frame) {
lb_800145F4();
gm_801A4B60();
}
}
/// #un_8031DE58_OnEnter

void vi_8031E0F0_OnFrame(void)
Expand Down
5 changes: 3 additions & 2 deletions src/melee/vi/vi0501.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@

#include <placeholder.h>

#include "ft/forward.h"
#include "vi/forward.h"
#include <baselib/forward.h>

/* 31D9F8 */ UNK_RET un_8031D9F8(UNK_PARAMS);
/* 31D9F8 */ void un_8031D9F8(CharacterKind char_kind, int costume, int spawn_mode, int spawn_count);
/* 31DC80 */ void vi_8031DC80(HSD_GObj*, int);
/* 31DD14 */ UNK_RET fn_8031DD14(UNK_PARAMS);
/* 31DD14 */ void fn_8031DD14(HSD_GObj* gobj);
/* 31DE58 */ void un_8031DE58_OnEnter(UNK_T);
/* 31E0F0 */ void vi_8031E0F0_OnFrame(void);
/* 31E110 */ void un_8031E110(int arg0, int arg1, int arg2);
Expand Down
21 changes: 21 additions & 0 deletions src/melee/vi/vi0501.static.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#ifndef __GALE01_31D9F8
#define __GALE01_31D9F8

#include "vi0501.h" // IWYU pragma: export

#include <placeholder.h>

#include "vi/forward.h"

#include <baselib/aobj.h>
#include <baselib/cobj.h>
#include <baselib/gobj.h>

/* 4DE074 */ static f32 un_804DE074;
/* 4DE078 */ static f32 un_804DE078;
/* 4DE07C */ static f32 un_804DE07C;
/* 4DE080 */ static f32 un_804DE080;
/* 4DE084 */ static f32 un_804DE084;
/* 4DE088 */ static f32 un_804DE088;

#endif
63 changes: 60 additions & 3 deletions src/melee/vi/vi1101.c
Original file line number Diff line number Diff line change
@@ -1,14 +1,71 @@
#include "vi1101.static.h"

#include "gm/gm_1601.h"
#include "gm/gm_1A45.h"
#include "lb/lb_00F9.h"
#include "lb/lbaudio_ax.h"
#include "lb/lbshadow.h"
#include "vi.h"

extern GXColor un_804D5B08;

/// #un_8031F294

/// #fn_8031F548
void fn_8031F548(HSD_GObj* gobj)
{
HSD_JObjAnimAll(GET_JOBJ(gobj));
}

/// #fn_8031F56C
static void fn_8031F56C(HSD_GObj* gobj)
{
u8* colors;
char pad[8];
lbShadow_8000F38C(0);
if (HSD_CObjSetCurrent(GET_COBJ(gobj)) != 0) {
colors = (u8*)&un_804D5B08;
HSD_SetEraseColor(colors[0], colors[1], colors[2], colors[3]);
HSD_CObjEraseScreen(GET_COBJ(gobj), 1, 0, 1);
vi_8031CA04(gobj);
gobj->gxlink_prios = 0x281;
*(s32*)((char*)gobj + 0x20) = 0;
HSD_GObj_80390ED0(gobj, 7);
HSD_CObjEndCurrent();
}
}

void fn_8031F600(HSD_GObj* gobj)
{
HSD_CObj* cobj = GET_COBJ(gobj);

/// #fn_8031F600
HSD_CObjAnim(cobj);

if (un_804DE0E4 == cobj->aobj->curr_frame) {
if (gm_80164840(7) != 0) {
vi_8031C9B4(0xD, 0);
lbAudioAx_800237A8(0x209, 0x7F, 0x40);
}
}

if (un_804DE0E8 == cobj->aobj->curr_frame) {
vi_8031C9B4(0xD, 0);
lbAudioAx_800237A8(0x209, 0x7F, 0x40);
}

if (un_804DE0EC == cobj->aobj->curr_frame) {
if (gm_80164840(7) != 0) {
lbAudioAx_800237A8(0x20A, 0x7F, 0x40);
}
}

if (un_804DE0F0 == cobj->aobj->curr_frame) {
lbAudioAx_800237A8(0x20A, 0x7F, 0x40);
}

if (cobj->aobj->curr_frame == cobj->aobj->end_frame) {
lb_800145F4();
gm_801A4B60();
}
}

/// #un_8031F714_OnEnter

Expand Down
Loading