Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
98 changes: 42 additions & 56 deletions assets/xml/objects/object_bg.xml
Original file line number Diff line number Diff line change
@@ -1,80 +1,66 @@
<Root>
<File Name="object_bg" Segment="6">

<!-- Bombchu Bowling Girl skeleton -->
<Skeleton Name="gChuGirlSkel" Type="Flex" LimbType="Standard" Offset="0x6EB0"/>

<!-- Bombchu Bowling Girl animations -->
<Animation Name="gChuGirlWakeUpAnim" Offset="0x80"/>
<Animation Name="gChuGirlNoddingOffAnim" Offset="0x710"/>
<Animation Name="gChuGirlLeanOverCounterAnim" Offset="0x72AC"/>

<!-- Bombchu Bowling Girl limb displaylists -->
<DList Name="gChuGirlWaistDL" Offset="0x4038"/>
<DList Name="gChuGirlTorsoDL" Offset="0x3DB0"/>
<DList Name="gChuGirlNeckDL" Offset="0x33C8"/>
<DList Name="gChuGirlHeadDL" Offset="0x2EE0"/>
<DList Name="gChuGirlLeftUpperArmDL" Offset="0x3780"/>
<DList Name="gChuGirlLeftForearmDL" Offset="0x3670"/>
<DList Name="gChuGirlLeftHandDL" Offset="0x3520"/>
<DList Name="gChuGirlRightUpperArmDL" Offset="0x3BC8"/>
<DList Name="gChuGirlRightForearmDL" Offset="0x3AB8"/>
<DList Name="gChuGirlRightHandDL" Offset="0x3968"/>

<!-- Bombchu Bowling Girl limbs -->
<Limb Name="gChuGirlWaistLimb" LimbType="Standard" Offset="0x6E10"/>
<Limb Name="gChuGirlTorsoLimb" LimbType="Standard" Offset="0x6E1C"/>
<Limb Name="gChuGirlNeckLimb" LimbType="Standard" Offset="0x6E28"/>
<Limb Name="gChuGirlHeadLimb" LimbType="Standard" Offset="0x6E34"/>
<Limb Name="gChuGirlLeftUpperArmLimb" LimbType="Standard" Offset="0x6E40"/>
<Limb Name="gChuGirlLeftForearmLimb" LimbType="Standard" Offset="0x6E4C"/>
<Limb Name="gChuGirlLeftHandLimb" LimbType="Standard" Offset="0x6E58"/>
<Limb Name="gChuGirlRightUpperArmLimb" LimbType="Standard" Offset="0x6E64"/>
<Limb Name="gChuGirlRightForearmLimb" LimbType="Standard" Offset="0x6E70"/>
<Limb Name="gChuGirlRightHandLimb" LimbType="Standard" Offset="0x6E7C"/>

<!-- Bombchu Bowling Girl limb textures -->
<Texture Name="gChuGirlMouthTex" Format="rgba16" Width="32" Height="32" Offset="0x5910"/>
<Texture Name="gChuGirlSkinGradientTex" Format="rgba16" Width="16" Height="16" Offset="0x6110"/>
<Texture Name="gChuGirlSweaterTex" Format="rgba16" Width="32" Height="32" Offset="0x6510"/>
<Texture Name="gChuGirlUmbEarLicusTex" Format="rgba16" Width="16" Height="16" Offset="0x6310"/>
<Texture Name="gChuGirlHairTex" Format="rgba16" Width="8" Height="16" Offset="0x6D10"/>

<!-- Bombchu Bowling Girl eye textures -->
<Texture Name="gChuGirlEyeOpenTex" Format="rgba16" Width="32" Height="32" Offset="0x4110"/>
<Texture Name="gChuGirlEyeHalfTex" Format="rgba16" Width="32" Height="32" Offset="0x4910"/>
<Texture Name="gChuGirlEyeClosedTex" Format="rgba16" Width="32" Height="32" Offset="0x5110"/>

<!-- Vertices -->
<Array Name="gChuGirlHeadVtx" Count="221" Offset="0x720">
<Animation Name="gBowlingGirlWakingUpAnim" Offset="0x80"/>
<Animation Name="gBowlingGirlSleepingAnim" Offset="0x710"/>
<Array Name="gBowlingGirlHeadVtx" Count="221" Offset="0x720">
<Vtx/>
</Array>
<Array Name="gChuGirlNeckVtx" Count="31" Offset="0x14F0">
<Array Name="gBowlingGirlNeckVtx" Count="31" Offset="0x14F0">
<Vtx/>
</Array>
<Array Name="gChuGirlLeftHandVtx" Count="38" Offset="0x16E0">
<Array Name="gBowlingGirlLeftHandVtx" Count="38" Offset="0x16E0">
<Vtx/>
</Array>
<Array Name="gChuGirlLeftForearmVtx" Count="29" Offset="0x1940">
<Array Name="gBowlingGirlLeftArmVtx" Count="29" Offset="0x1940">
<Vtx/>
</Array>
<Array Name="gChuGirlLeftUpperArmVtx" Count="53" Offset="0x1B10">
<Array Name="gBowlingGirlLeftShoulderVtx" Count="53" Offset="0x1B10">
<Vtx/>
</Array>
<Array Name="gChuGirlRightHandVtx" Count="36" Offset="0x1E60">
<Array Name="gBowlingGirlRightHandVtx" Count="36" Offset="0x1E60">
<Vtx/>
</Array>
<Array Name="gChuGirlRightForearmVtx" Count="29" Offset="0x20A0">
<Array Name="gBowlingGirlRightArmVtx" Count="29" Offset="0x20A0">
<Vtx/>
</Array>
<Array Name="gChuGirlRightUpperArmVtx" Count="49" Offset="0x2270">
<Array Name="gBowlingGirlRightShoulderVtx" Count="49" Offset="0x2270">
<Vtx/>
</Array>
<Array Name="gChuGirlTorsoVtx" Count="137" Offset="0x2580">
<Array Name="gBowlingGirlTorsoVtx" Count="137" Offset="0x2580">
<Vtx/>
</Array>
<Array Name="gChuGirlWaistVtx" Count="13" Offset="0x2E10">
<Array Name="gBowlingGirlLowerBodyVtx" Count="13" Offset="0x2E10">
<Vtx/>
</Array>
<DList Name="gBowlingGirlHeadDL" Offset="0x2EE0"/>
<DList Name="gBowlingGirlNeckDL" Offset="0x33C8"/>
<DList Name="gBowlingGirlLeftHandDL" Offset="0x3520"/>
<DList Name="gBowlingGirlLeftArmDL" Offset="0x3670"/>
<DList Name="gBowlingGirlLeftShoulderDL" Offset="0x3780"/>
<DList Name="gBowlingGirlRightHandDL" Offset="0x3968"/>
<DList Name="gBowlingGirlRightArmDL" Offset="0x3AB8"/>
<DList Name="gBowlingGirlRightShoulderDL" Offset="0x3BC8"/>
<DList Name="gBowlingGirlTorsoDL" Offset="0x3DB0"/>
<DList Name="gBowlingGirlLowerBodyDL" Offset="0x4038"/>
<Texture Name="gBowlingGirlEyeOpenTex" Format="rgba16" Width="32" Height="32" Offset="0x4110"/>
<Texture Name="gBowlingGirlEyeHalfTex" Format="rgba16" Width="32" Height="32" Offset="0x4910"/>
<Texture Name="gBowlingGirlEyeClosedTex" Format="rgba16" Width="32" Height="32" Offset="0x5110"/>
<Texture Name="gBowlingGirlMouthTex" Format="rgba16" Width="32" Height="32" Offset="0x5910"/>
<Texture Name="gBowlingGirlSkinTex" Format="rgba16" Width="16" Height="16" Offset="0x6110"/>
<Texture Name="gBowlingGirlEarAndBellyButtonTex" Format="rgba16" Width="16" Height="16" Offset="0x6310"/>
<Texture Name="gBowlingGirlClothTex" Format="rgba16" Width="32" Height="32" Offset="0x6510"/>
<Texture Name="gBowlingGirlHairTex" Format="rgba16" Width="8" Height="16" Offset="0x6D10"/>
<Limb Name="gBowlingGirlLowerBodyLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_LOWER_BODY" Offset="0x6E10"/>
<Limb Name="gBowlingGirlTorsoLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_TORSO" Offset="0x6E1C"/>
<Limb Name="gBowlingGirlNeckLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_NECK" Offset="0x6E28"/>
<Limb Name="gBowlingGirlHeadLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_HEAD" Offset="0x6E34"/>
<Limb Name="gBowlingGirlLeftShoulderLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_LEFT_SHOULDER" Offset="0x6E40"/>
<Limb Name="gBowlingGirlLeftArmLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_LEFT_ARM" Offset="0x6E4C"/>
<Limb Name="gBowlingGirlLeftHandLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_LEFT_HAND" Offset="0x6E58"/>
<Limb Name="gBowlingGirlRightShoulderLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_RIGHT_SHOULDER" Offset="0x6E64"/>
<Limb Name="gBowlingGirlRightArmLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_RIGHT_ARM" Offset="0x6E70"/>
<Limb Name="gBowlingGirlRightHandLimb" LimbType="Standard" EnumName="BOWLING_GIRL_LIMB_RIGHT_HAND" Offset="0x6E7C"/>
<Skeleton Name="gBowlingGirlSkel" Type="Flex" LimbType="Standard" LimbNone="BOWLING_GIRL_LIMB_NONE" LimbMax="BOWLING_GIRL_LIMB_MAX" EnumName="BowlingGirlLimb" Offset="0x6EB0"/>
<Animation Name="gBowlingGirlHandsOnCounterAnim" Offset="0x72AC"/>
</File>
</Root>
14 changes: 7 additions & 7 deletions assets/xml/objects/object_bowl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@
<Texture Name="gBowlingStripesTex" Format="i4" Width="16" Height="16" Offset="0x3470"/>

<!-- Bombchu Bowling DisplayLists -->
<DList Name="gBowlingRound1WallDL" Offset="0x610"/>
<DList Name="gBowlingRound2WallDL" Offset="0x1390"/>
<DList Name="gBowlingFirstWallDL" Offset="0x610"/>
<DList Name="gBowlingSecondWallDL" Offset="0x1390"/>
<DList Name="gBowlingDL_1B80" Offset="0x1B80"/>

<!-- Bombchu Bowling Collision -->
<Collision Name="gBowlingFirstAndFinalRoundCol" Offset="0xCB8"/>
<Collision Name="gBowlingSecondRoundCol" Offset="0x1B00"/>
<Collision Name="gBowlingDefaultCol" Offset="0x1C40"/>
<Collision Name="gBowlingFirstWallCol" Offset="0xCB8"/>
<Collision Name="gBowlingSecondWallCol" Offset="0x1B00"/>
<Collision Name="gBowlingBgBomGuardCol" Offset="0x1C40"/>

<!-- Vertices -->
<Array Name="gBowlingRound1WallVtx" Count="97" Offset="0x0">
<Array Name="gBowlingFirstWallVtx" Count="97" Offset="0x0">
<Vtx/>
</Array>
<Array Name="gBowlingRound2WallVtx" Count="106" Offset="0xCF0">
<Array Name="gBowlingSecondWallVtx" Count="106" Offset="0xCF0">
<Vtx/>
</Array>
<Array Name="object_bowl_Vtx_001B30" Count="5" Offset="0x1B30">
Expand Down
4 changes: 2 additions & 2 deletions include/save.h
Original file line number Diff line number Diff line change
Expand Up @@ -745,8 +745,8 @@ typedef enum LinkAge {
#define ITEMGETINF_0E 0x0E
#define ITEMGETINF_0F 0x0F
#define ITEMGETINF_10 0x10
#define ITEMGETINF_11 0x11
#define ITEMGETINF_12 0x12
#define ITEMGETINF_BOWLING_BOMB_BAG 0x11
#define ITEMGETINF_BOWLING_HEART_PIECE 0x12
#define ITEMGETINF_13 0x13
#define ITEMGETINF_15 0x15
#define ITEMGETINF_16 0x16
Expand Down
36 changes: 18 additions & 18 deletions src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* File: z_bg_bom_guard.c
* Overlay: Bg_Bom_Guard
* Description: Bombchu Bowling Alley Walls
* Description: Bombchu Bowling Alley invisible wall locking the player in the game area
*/

#include "z_bg_bom_guard.h"
Expand All @@ -21,7 +21,7 @@ void BgBomGuard_Init(Actor* thisx, PlayState* play);
void BgBomGuard_Destroy(Actor* thisx, PlayState* play);
void BgBomGuard_Update(Actor* thisx, PlayState* play);

void func_8086E638(BgBomGuard* this, PlayState* play);
void BgBomGuard_UpdateImpl(BgBomGuard* this, PlayState* play);

ActorProfile Bg_Bom_Guard_Profile = {
/**/ ACTOR_BG_BOM_GUARD,
Expand All @@ -45,17 +45,17 @@ void BgBomGuard_Init(Actor* thisx, PlayState* play) {
CollisionHeader* colHeader = NULL;

DynaPolyActor_Init(&this->dyna, 0);
CollisionHeader_GetVirtual(&gBowlingDefaultCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader);
CollisionHeader_GetVirtual(&gBowlingBgBomGuardCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);

PRINTF("\n\n");
PRINTF(VT_FGCOL(GREEN) T(" ☆☆☆☆☆ 透明ガード出現 ☆☆☆☆☆ \n", " ☆☆☆☆☆ Transparent guard appears ☆☆☆☆☆ \n") VT_RST);

thisx->scale.x = 1.0f;
thisx->scale.y = 1.0f;
thisx->scale.z = 1.0f;
this->unk_16C = thisx->world.pos;
BgBomGuard_SetupAction(this, func_8086E638);
this->dyna.actor.scale.x = 1.0f;
this->dyna.actor.scale.y = 1.0f;
this->dyna.actor.scale.z = 1.0f;
this->homePos = this->dyna.actor.world.pos;
BgBomGuard_SetupAction(this, BgBomGuard_UpdateImpl);
}

void BgBomGuard_Destroy(Actor* thisx, PlayState* play) {
Expand All @@ -64,27 +64,27 @@ void BgBomGuard_Destroy(Actor* thisx, PlayState* play) {
DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId);
}

void func_8086E638(BgBomGuard* this, PlayState* play) {
void BgBomGuard_UpdateImpl(BgBomGuard* this, PlayState* play) {
Actor* it = play->actorCtx.actorLists[ACTORCAT_NPC].head;
Actor* thisx = &this->dyna.actor;

this->unk_168 = 0;
this->isActive = false;

while (it != NULL) {
if (it->id == ACTOR_EN_BOM_BOWL_MAN) {
if ((((EnBomBowlMan*)it)->minigamePlayStatus != 0) && (fabsf(play->view.eye.x) > -20.0f) &&
(fabsf(play->view.eye.y) > 110.0f)) {
this->unk_168 = 1;
if ((((EnBomBowlMan*)it)->gameStartStatus != EN_BOM_BOWL_MAN_GAME_START_STATUS_INACTIVE) &&
(fabsf(play->view.eye.x) > -20.0f) && (fabsf(play->view.eye.y) > 110.0f)) {
this->isActive = true;
}
break;
}
it = it->next;
}

if (this->unk_168 == 0) {
thisx->world.pos.y = sREG(64) + -200.0f;
if (!this->isActive) {
// Move under ground
this->dyna.actor.world.pos.y = sREG(64) + -200.0f;
} else {
thisx->world.pos.y = 0.0f;
this->dyna.actor.world.pos.y = 0.0f;
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ typedef void (*BgBomGuardActionFunc)(struct BgBomGuard*, struct PlayState*);
typedef struct BgBomGuard {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgBomGuardActionFunc actionFunc;
/* 0x0168 */ u8 unk_168;
/* 0x016C */ Vec3f unk_16C;
/* 0x0168 */ u8 isActive;
/* 0x016C */ Vec3f homePos;
} BgBomGuard; // size = 0x0178

#endif
Loading