minor docs
Some checks failed
Build / Build repo (push) Has been cancelled
Check Format / Check format (push) Has been cancelled

This commit is contained in:
Alejandro Javier Asenjo Nitti 2024-09-30 22:22:36 -03:00
parent 4bc559b590
commit 6c50c74c62
12 changed files with 92 additions and 61 deletions

View File

@ -797,7 +797,7 @@ typedef enum ActorCutsceneModels {
/* 35 */ ACTOR_CS_SY_SHIP_1_SHRINK, // Scale Matrix by 1/8.
/* 36 */ ACTOR_CS_SY_SHIP_2,
/* 37 */ ACTOR_CS_37,
/* 38 */ ACTOR_CS_38, // Related to Sector Y
/* 38 */ ACTOR_CS_SY_ROBOT,
/* 39 */ ACTOR_CS_SY_SHIP_1 = 39,
/* 40 */ ACTOR_CS_40,
/* 41 */ ACTOR_CS_AQ_FISHGROUP,

View File

@ -28,7 +28,7 @@ typedef struct PlanetStats {
/* bit D */ u16 peppyAlive : 1;
/* bit E */ u16 falcoAlive : 1;
/* bit F */ u16 slippyAlive : 1;
} PlanetStats; // size = 0x10
} PlanetStats; // size = 0x1
typedef struct SaveData {
/* 0x00 */ PlanetData planet[16];

View File

@ -205,9 +205,9 @@ ItemGoldRing_Draw = 0x8005CA80;
ItemBomb_Draw = 0x8005CB44;
ItemLasers_Draw = 0x8005CC9C;
ItemMeteoWarp_Draw = 0x8005CDA8;
func_edisplay_8005D008 = 0x8005D008;
func_edisplay_8005D1F0 = 0x8005D1F0;
func_edisplay_8005D3CC = 0x8005D3CC;
Object_SetMatrix = 0x8005D008;
Boss_SetMatrix = 0x8005D1F0;
ObjSpecial_SetMatrix = 0x8005D3CC;
Scenery_Draw = 0x8005D654;
Sprite_Draw = 0x8005D8B8;
Actor_DrawOnRails = 0x8005D954;

View File

@ -115,6 +115,7 @@ void Background_DrawStarfield(void) {
gDPSetCycleType(gMasterDisp++, G_CYC_FILL);
gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
starCount = gStarCount;
if (starCount != 0) {
if (gStarfieldX >= 1.5f * SCREEN_WIDTH) {
@ -139,8 +140,10 @@ void Background_DrawStarfield(void) {
if (gGameState != GSTATE_PLAY) {
starCount = 1000;
}
zCos = __cosf(gStarfieldRoll);
zSin = __sinf(gStarfieldRoll);
for (i = 0; i < starCount; i++, yStar++, xStar++, color++) {
bx = *xStar + xField;
by = *yStar + yField;
@ -181,6 +184,7 @@ void Background_DrawPartialStarfield(s32 yMin, s32 yMax) {
f32* sp60;
f32* sp5C;
u32* sp58;
gDPPipeSync(gMasterDisp++);
gDPSetCycleType(gMasterDisp++, G_CYC_FILL);
gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE);
@ -209,6 +213,7 @@ void Background_DrawPartialStarfield(s32 yMin, s32 yMax) {
cos = __cosf(gStarfieldRoll);
sin = __sinf(gStarfieldRoll);
for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) {
bx = *sp60 + spf68;
by = *sp5C + spf64;
@ -817,6 +822,7 @@ void Background_DrawLensFlare(void) {
Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].camRoll * M_DTOR, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, gSunViewX, gSunViewY, -200.0f, MTXF_APPLY);
RCP_SetupDL_62();
lensFlareOffsetX = gSunViewX * -0.03f;
lensFlareOffsetY = gSunViewY * 0.03f;
lensFlareColor = &sSunColors[5];
@ -1198,26 +1204,39 @@ void Background_DrawGround(void) {
Matrix_Pop(&gGfxMatrix);
}
// Unused. Early water implementation in Aquas?
void func_bg_80042D38(void) {
f32 xEye;
f32 zEye;
if (!gPlayer[gPlayerNum].cam.eye.x) {}
if (!gPlayer[gPlayerNum].cam.eye.y) {} // all sorts of fake
// all sorts of fake
if (gPlayer[gPlayerNum].cam.eye.x == 0.0f) {
// Commented out code?
}
if (gPlayer[gPlayerNum].cam.eye.z == 0.0f) {
// Commented out code?
}
Matrix_Push(&gGfxMatrix);
xEye = gPlayer[gPlayerNum].cam.eye.x;
if (0) {}
if (0) {} //! FAKE
zEye = gPlayer[gPlayerNum].cam.eye.z;
Matrix_Translate(gGfxMatrix, xEye, 2.0f + gCameraShakeY, zEye, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, MTXF_APPLY);
RCP_SetupDL_37(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 125);
Matrix_SetGfxMtx(&gMasterDisp);
if ((gGameFrameCount % 2) != 0) {
gSPDisplayList(gMasterDisp++, D_AQ_602C030);
} else {
gSPDisplayList(gMasterDisp++, D_AQ_602C088);
}
Matrix_Pop(&gGfxMatrix);
}

View File

@ -2767,7 +2767,7 @@ void ActorCutscene_Draw(ActorCutscene* this) {
gSPDisplayList(gMasterDisp++, aOrbDL);
break;
case ACTOR_CS_38:
case ACTOR_CS_SY_ROBOT:
animFrameData = Animation_GetFrameData(D_demo_800CA1F4[this->iwork[4]], this->iwork[5], sp144);
Math_SmoothStepToVec3fArray(sp144, this->vwork, 1, animFrameData, this->fwork[2], 100.0f, .0f);
RCP_SetupDL_30(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);

View File

@ -1,3 +1,8 @@
/*
* File: fox_edisplay.c
* Description: Object Draw routines
*/
#include "prevent_bss_reordering.h"
#include "global.h"
#include "sf64object.h"
@ -39,8 +44,8 @@ void Object_ApplyWaterDistortion(void) {
Matrix_SetGfxMtx(&gMasterDisp);
}
void Object_SetCullDirection(s32 arg0) {
if (arg0 < 0) {
void Object_SetCullDirection(s32 cullDirection) {
if (cullDirection < 0) {
gSPSetGeometryMode(gMasterDisp++, G_CULL_FRONT);
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
}
@ -939,7 +944,7 @@ void ItemMeteoWarp_Draw(ItemMeteoWarp* this) {
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK | G_LIGHTING);
}
void func_edisplay_8005D008(Object* obj, s32 drawType) {
void Object_SetMatrix(Object* obj, s32 drawType) {
if (drawType == 2) {
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, gPathProgress, MTXF_APPLY);
Matrix_Translate(gCalcMatrix, obj->pos.x, obj->pos.y, obj->pos.z, MTXF_NEW);
@ -960,7 +965,7 @@ void func_edisplay_8005D008(Object* obj, s32 drawType) {
}
}
void func_edisplay_8005D1F0(Object* obj, s32 drawType) {
void Boss_SetMatrix(Object* obj, s32 drawType) {
if (drawType == 2) {
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, gPathProgress, MTXF_APPLY);
Matrix_Translate(gCalcMatrix, obj->pos.x, obj->pos.y, obj->pos.z, MTXF_NEW);
@ -980,7 +985,8 @@ void func_edisplay_8005D1F0(Object* obj, s32 drawType) {
}
}
void func_edisplay_8005D3CC(Object* obj, f32 xRot, f32 yRot, f32 zRot, s32 drawType) {
// Used for EVID_A6_UMBRA_STATION, OBJ_EFFECT_ENEMY_LASER_1 and OBJ_EFFECT_369
void ObjSpecial_SetMatrix(Object* obj, f32 xRot, f32 yRot, f32 zRot, s32 drawType) {
if (drawType == 2) {
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, gPathProgress, MTXF_APPLY);
Matrix_Translate(gCalcMatrix, obj->pos.x, obj->pos.y, obj->pos.z, MTXF_NEW);
@ -1007,9 +1013,9 @@ void func_edisplay_8005D3CC(Object* obj, f32 xRot, f32 yRot, f32 zRot, s32 drawT
}
}
void Scenery_Draw(Scenery* this, s32 arg1) {
void Scenery_Draw(Scenery* this, s32 cullDirection) {
this->obj.pos.y += gCameraShakeY;
func_edisplay_8005D008(&this->obj, this->info.drawType);
Object_SetMatrix(&this->obj, this->info.drawType);
this->obj.pos.y -= gCameraShakeY;
if (this->info.drawType == 0) {
@ -1018,7 +1024,7 @@ void Scenery_Draw(Scenery* this, s32 arg1) {
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
if (arg1 < 0) {
if (cullDirection < 0) {
Object_ApplyWaterDistortion();
}
@ -1026,15 +1032,15 @@ void Scenery_Draw(Scenery* this, s32 arg1) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} else {
if (this->obj.id == OBJ_SCENERY_CO_HIGHWAY_3) {
if (arg1 < 0) {
if (cullDirection < 0) {
return; // weird control flow
}
RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
}
Object_SetCullDirection(arg1);
Object_SetCullDirection(cullDirection);
if (arg1 < 0) {
if (cullDirection < 0) {
Object_ApplyWaterDistortion();
}
@ -1045,7 +1051,7 @@ void Scenery_Draw(Scenery* this, s32 arg1) {
}
}
} else if (this->info.draw != NULL) {
Object_SetCullDirection(arg1);
Object_SetCullDirection(cullDirection);
this->info.draw(&this->obj);
}
}
@ -1053,7 +1059,7 @@ void Scenery_Draw(Scenery* this, s32 arg1) {
void Sprite_Draw(Sprite* this, s32 arg1) {
if (arg1 >= 0) {
this->obj.pos.y += gCameraShakeY;
func_edisplay_8005D008(&this->obj, 0);
Object_SetMatrix(&this->obj, 0);
this->obj.pos.y -= gCameraShakeY;
if (this->info.drawType == 0) {
@ -1082,13 +1088,13 @@ void Actor_DrawOnRails(Actor* this) {
} else {
if (this->info.unk_19 != 0) {
this->obj.pos.y += gCameraShakeY;
func_edisplay_8005D008(&this->obj, this->info.drawType);
Object_SetMatrix(&this->obj, this->info.drawType);
this->obj.pos.y -= gCameraShakeY;
} else if ((this->obj.id == OBJ_ACTOR_EVENT) && (this->eventType != EVID_A6_UMBRA_STATION)) {
func_edisplay_8005D3CC(&this->obj, this->vwork[29].x, this->vwork[29].y,
this->vwork[29].z + this->rot_0F4.z, this->info.drawType);
ObjSpecial_SetMatrix(&this->obj, this->vwork[29].x, this->vwork[29].y,
this->vwork[29].z + this->rot_0F4.z, this->info.drawType);
} else {
func_edisplay_8005D008(&this->obj, this->info.drawType);
Object_SetMatrix(&this->obj, this->info.drawType);
}
if (this->info.drawType == 0) {
@ -1227,10 +1233,10 @@ void Boss_Draw(Boss* this, s32 arg1) {
if (this->info.unk_19 != 0) {
this->obj.pos.y += this->yOffset + gCameraShakeY;
func_edisplay_8005D1F0(&this->obj, this->info.drawType);
Boss_SetMatrix(&this->obj, this->info.drawType);
this->obj.pos.y -= this->yOffset + gCameraShakeY;
} else {
func_edisplay_8005D1F0(&this->obj, this->info.drawType);
Boss_SetMatrix(&this->obj, this->info.drawType);
}
Matrix_MultVec3f(&D_edisplay_801615F0, &origin, &D_edisplay_801615D0);
@ -1289,13 +1295,13 @@ void Effect_DrawOnRails(Effect* this, s32 arg1) {
}
if ((this->obj.id == OBJ_EFFECT_ENEMY_LASER_1) || (this->obj.id == OBJ_EFFECT_369)) {
func_edisplay_8005D3CC(&this->obj, this->unk_60.x, this->unk_60.y, this->unk_60.z, 0);
ObjSpecial_SetMatrix(&this->obj, this->unk_60.x, this->unk_60.y, this->unk_60.z, 0);
} else if (this->info.unk_14 == -1) {
this->obj.pos.y += gCameraShakeY;
func_edisplay_8005D008(&this->obj, 0);
Object_SetMatrix(&this->obj, 0);
this->obj.pos.y -= gCameraShakeY;
} else {
func_edisplay_8005D008(&this->obj, 0);
Object_SetMatrix(&this->obj, 0);
}
if (this->info.draw != NULL) {
@ -1664,7 +1670,7 @@ bool func_edisplay_8005F9DC(Vec3f* arg0) {
return false;
}
void Object_DrawAll(s32 arg0) {
void Object_DrawAll(s32 cullDirection) {
Vec3f spAC;
s32 i;
s32 pad[5]; // probably separate iterators for each loop
@ -1699,20 +1705,20 @@ void Object_DrawAll(s32 arg0) {
} else {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
for (i = 0, scenery = &gScenery[0]; i < ARRAY_COUNT(gScenery); i++, scenery++) {
if (scenery->obj.status >= OBJ_ACTIVE) {
if (arg0 > 0) {
if (cullDirection > 0) {
Display_SetSecondLight(&scenery->obj.pos);
}
Matrix_Push(&gGfxMatrix);
Scenery_Draw(scenery, arg0);
Scenery_Draw(scenery, cullDirection);
Matrix_Pop(&gGfxMatrix);
Object_UpdateSfxSource(scenery->sfxSource);
}
}
}
for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) {
for (i = 0, boss = &gBosses[0]; i < ARRAY_COUNT(gBosses); i++, boss++) {
if ((boss->obj.status >= OBJ_ACTIVE) && (boss->obj.id != OBJ_BOSS_BO_BASE_SHIELD)) {
if ((boss->timer_05C % 2) == 0) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
@ -1721,9 +1727,9 @@ void Object_DrawAll(s32 arg0) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 64, 64, 255, 255);
}
Object_SetCullDirection(arg0);
Object_SetCullDirection(cullDirection);
Matrix_Push(&gGfxMatrix);
Boss_Draw(boss, arg0);
Boss_Draw(boss, cullDirection);
Matrix_Pop(&gGfxMatrix);
if (boss->drawShadow && (D_edisplay_801615D0.y > 0.0f)) {
Matrix_Push(&gGfxMatrix);
@ -1736,7 +1742,7 @@ void Object_DrawAll(s32 arg0) {
Lights_SetOneLight(&gMasterDisp, gLight1x, gLight1y, gLight1z, gLight1R, gLight1G, gLight1B, gAmbientR, gAmbientG,
gAmbientB);
for (i = 0, sprite = gSprites; i < ARRAY_COUNT(gSprites); i++, sprite++) {
for (i = 0, sprite = &gSprites[0]; i < ARRAY_COUNT(gSprites); i++, sprite++) {
if ((sprite->obj.status >= OBJ_ACTIVE) && func_enmy_80060FE4(&sprite->obj.pos, -12000.0f)) {
Matrix_Push(&gGfxMatrix);
@ -1746,7 +1752,7 @@ void Object_DrawAll(s32 arg0) {
RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
}
Sprite_Draw(sprite, arg0);
Sprite_Draw(sprite, cullDirection);
Matrix_Pop(&gGfxMatrix);
}
}
@ -1779,7 +1785,7 @@ void Object_DrawAll(s32 arg0) {
Display_SetSecondLight(&actor->obj.pos);
}
Object_SetCullDirection(arg0);
Object_SetCullDirection(cullDirection);
Actor_DrawOnRails(actor);
Matrix_Pop(&gGfxMatrix);
@ -1814,8 +1820,8 @@ void Object_DrawAll(s32 arg0) {
if (item->obj.status >= OBJ_ACTIVE) {
Matrix_Push(&gGfxMatrix);
RCP_SetupDL(&gMasterDisp, SETUPDL_29);
Object_SetCullDirection(arg0);
Item_Draw(item, arg0);
Object_SetCullDirection(cullDirection);
Item_Draw(item, cullDirection);
Matrix_Pop(&gGfxMatrix);
}
}

View File

@ -1,3 +1,9 @@
/*
* File: fox_effect.c
* System: Effect
* Description: Effect Draw routines
*/
#include "global.h"
#include "assets/ast_blue_marine.h"
#include "assets/ast_arwing.h"

View File

@ -176,6 +176,7 @@ void Game_InitMasterDL(Gfx** dList) {
} else {
gDPSetFillColor((*dList)++, FILL_COLOR(gBgColor | 1));
}
gDPFillRectangle((*dList)++, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN - 1,
SCREEN_HEIGHT - SCREEN_MARGIN);
gDPPipeSync((*dList)++);

View File

@ -386,7 +386,7 @@ void Play_Setup360_CO(void) {
}
}
for (i = 0, sprite = gSprites; i < ARRAY_COUNT(gSprites); i++) {
for (i = 0, sprite = &gSprites[0]; i < ARRAY_COUNT(gSprites); i++) {
if (gLevelObjects[i].id <= OBJ_INVALID) {
break;
}
@ -1952,7 +1952,7 @@ void Player_CollisionCheck(Player* player) {
}
}
for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) {
for (i = 0, boss = &gBosses[0]; i < ARRAY_COUNT(gBosses); i++, boss++) {
if (boss->obj.status == OBJ_ACTIVE) {
if ((boss->obj.id == OBJ_BOSS_VE2_BASE) || (boss->obj.id == OBJ_BOSS_FO_BASE) ||
(boss->obj.id == OBJ_BOSS_SZ_GREAT_FOX) || (boss->obj.id == OBJ_BOSS_BO_BASE)) {
@ -2727,7 +2727,7 @@ void Play_Init(void) {
gSceneSetup = 0;
}
gShowHud = 1;
gShowHud = true;
gDrawGround = gDrawBackdrop = 1;
gAqDrawMode = sOverheadCam = 0;
gCamDistortion = sOverheadCamDist = 0.0f;
@ -4952,7 +4952,7 @@ void Player_UpdateTankRoll(Player* player) {
void Player_ArwingBoost(Player* player) {
f32 sp2C;
f32 sp28;
s32 var;
s32 stickY;
if ((player->boostMeter != 0.0f) && (gInputHold->button & gBrakeButton[player->num]) &&
(gInputHold->button & gBoostButton[player->num])) {
@ -4970,7 +4970,7 @@ void Player_ArwingBoost(Player* player) {
player->sfx.boost = 0;
var = gInputPress->stick_y; // fake?
stickY = gInputPress->stick_y; // fake?
if (gLoopDownTimers[gPlayerNum] != 0) {
gLoopDownTimers[gPlayerNum]--;
@ -4980,7 +4980,7 @@ void Player_ArwingBoost(Player* player) {
gLoopBoostTimers[gPlayerNum]--;
}
if (!player->somersault && (gDrawBackdrop < 5)) {
if (var >= -50) {
if (stickY >= -50) {
gLoopDownTimers[gPlayerNum] = 5;
}
if ((gLoopDownTimers[gPlayerNum] > 0) && (gLoopDownTimers[gPlayerNum] < 5) &&
@ -5529,7 +5529,7 @@ void Player_Down(Player* player) {
player->hitTimer = 0;
player->radioDamageTimer = 0;
player->damageShake = 0.0f;
gShowHud = 0;
gShowHud = false;
}
void Player_UpdateOnRails(Player* player) {
@ -5777,7 +5777,7 @@ void Player_Update(Player* player) {
switch (player->state_1C8) {
case PLAYERSTATE_1C8_STANDBY:
player->draw = false;
gShowHud = 0;
gShowHud = false;
gPauseEnabled = false;
break;
@ -5788,14 +5788,14 @@ void Player_Update(Player* player) {
break;
case PLAYERSTATE_1C8_LEVEL_INTRO:
gShowHud = 0;
gShowHud = false;
gPauseEnabled = false;
player->arwing.drawFace = true;
Cutscene_LevelStart(player);
break;
case PLAYERSTATE_1C8_ACTIVE:
gShowHud = 1;
gShowHud = true;
Player_LowHealthMsg(player);
player->arwing.drawFace = false;
D_hud_80161704 = 255;
@ -5899,7 +5899,7 @@ void Player_Update(Player* player) {
gPauseEnabled = false;
Player_UpdateShields(player);
Cutscene_EnterWarpZone(player);
gShowHud = 0;
gShowHud = false;
break;
case PLAYERSTATE_1C8_START_360:
@ -5913,7 +5913,7 @@ void Player_Update(Player* player) {
case PLAYERSTATE_1C8_GFOX_REPAIR:
gPauseEnabled = false;
AllRange_GreatFoxRepair(player);
gShowHud = 0;
gShowHud = false;
break;
case PLAYERSTATE_1C8_ANDROSS_MOUTH:
@ -5945,7 +5945,7 @@ void Player_Update(Player* player) {
break;
case PLAYERSTATE_1C8_NEXT:
gShowHud = 0;
gShowHud = false;
if (!gVersusMode) {
gPauseEnabled = false;

View File

@ -249,12 +249,12 @@ bool Ending_8018DCB4(void) {
teamAlive += (gMissionTeamStatus[i] & TEAMSTATUS_FALCO) & 1;
}
for (i = 0; i < 10; i += 1) {
for (i = 0; i < 10; i++) {
temp4[i] = 0;
unk40[i] = gSaveFile.save.data.rankingLives[i];
for (j = 0; j < 7; j += 1) {
temp4[i] += gSaveFile.save.data.stats[i][j].hitCount + (gSaveFile.save.data.stats[i][j].unk_C * 256);
for (j = 0; j < 7; j++) {
temp4[i] += gSaveFile.save.data.stats[i][j].hitCount + (gSaveFile.save.data.stats[i][j].unk_C * 0x100);
stats[i][0] += gSaveFile.save.data.stats[i][j].peppyAlive & 1;
stats[i][1] += gSaveFile.save.data.stats[i][j].slippyAlive & 1;
stats[i][2] += gSaveFile.save.data.stats[i][j].falcoAlive & 1;

View File

@ -2850,7 +2850,6 @@ void Corneria_CsTeamSetup(ActorCutscene* this, s32 teamIdx) {
this->fwork[0] = RAND_FLOAT(360.0f);
Object_SetInfo(&this->info, this->obj.id);
this->drawShadow = true;
this->iwork[11] = 1;
this->info.cullDistance = 200.0f;

View File

@ -2531,7 +2531,7 @@ void SectorY_801A0510(ActorCutscene* this, s32 arg1) {
case 1:
case 2:
case 8:
this->animFrame = ACTOR_CS_38;
this->animFrame = ACTOR_CS_SY_ROBOT;
this->obj.rot.y = 90.0f;
Object_SetInfo(&this->info, this->obj.id);
break;