mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-22 17:32:19 -05:00
vb lh sun (#106)
* underwater working pre func_80B858B4 replacement * underwater item update handled by hookhandlers * vb lh sun * remove unused should
This commit is contained in:
parent
fe231147d5
commit
bbbd2520b1
@ -277,6 +277,8 @@ void ItemBHeart_UpdateRandomizedItem(Actor* actor, PlayState* play) {
|
||||
|
||||
void ItemEtcetera_DrawRandomizedItem(ItemEtcetera* itemEtcetera, PlayState* play) {
|
||||
EnItem00_CustomItemsParticles(&itemEtcetera->actor, play, itemEtcetera->sohItemEntry);
|
||||
func_8002EBCC(&itemEtcetera->actor, play, 0);
|
||||
func_8002ED80(&itemEtcetera->actor, play, 0);
|
||||
GetItemEntry_Draw(play, itemEtcetera->sohItemEntry);
|
||||
}
|
||||
|
||||
@ -296,6 +298,44 @@ void ItemEtcetera_func_80B858B4_Randomized(ItemEtcetera* itemEtcetera, PlayState
|
||||
}
|
||||
}
|
||||
|
||||
void ItemEtcetera_func_80B85824_Randomized(ItemEtcetera* itemEtcetera, PlayState* play) {
|
||||
if ((itemEtcetera->actor.params & 0xFF) != 7) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (itemEtcetera->actor.xzDistToPlayer < 30.0f &&
|
||||
fabsf(itemEtcetera->actor.yDistToPlayer) < 50.0f) {
|
||||
|
||||
Flags_SetTreasure(play, 0x1F);
|
||||
Actor_Kill(&itemEtcetera->actor);
|
||||
}
|
||||
}
|
||||
|
||||
void ItemEtcetera_MoveRandomizedFireArrowDown(ItemEtcetera* itemEtcetera, PlayState* play) {
|
||||
Actor_UpdateBgCheckInfo(play, &itemEtcetera->actor, 10.0f, 10.0f, 0.0f, 5);
|
||||
Actor_MoveForward(&itemEtcetera->actor);
|
||||
if (!(itemEtcetera->actor.bgCheckFlags & 1)) {
|
||||
ItemEtcetera_SpawnSparkles(itemEtcetera, play);
|
||||
}
|
||||
itemEtcetera->actor.shape.rot.y += 0x400;
|
||||
ItemEtcetera_func_80B85824_Randomized(itemEtcetera, play);
|
||||
}
|
||||
|
||||
void ItemEtcetera_UpdateRandomizedFireArrow(ItemEtcetera* itemEtcetera, PlayState* play) {
|
||||
if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[0] != NULL)) {
|
||||
if (play->csCtx.npcActions[0]->action == 2) {
|
||||
itemEtcetera->actor.draw = (ActorFunc)ItemEtcetera_DrawRandomizedItem;
|
||||
itemEtcetera->actor.gravity = -0.1f;
|
||||
itemEtcetera->actor.minVelocityY = -4.0f;
|
||||
itemEtcetera->actionFunc = ItemEtcetera_MoveRandomizedFireArrowDown;
|
||||
}
|
||||
} else {
|
||||
itemEtcetera->actor.gravity = -0.1f;
|
||||
itemEtcetera->actor.minVelocityY = -4.0f;
|
||||
itemEtcetera->actionFunc = ItemEtcetera_MoveRandomizedFireArrowDown;
|
||||
}
|
||||
}
|
||||
|
||||
void EnCow_MoveForRandomizer(EnCow* enCow, PlayState* play) {
|
||||
bool moved = false;
|
||||
|
||||
@ -991,6 +1031,10 @@ void RandomizerOnActorInitHandler(void* actorRef) {
|
||||
itemEtcetera->futureActionFunc = (ItemEtceteraActionFunc)ItemEtcetera_func_80B858B4_Randomized;
|
||||
break;
|
||||
}
|
||||
case ITEM_ETC_ARROW_FIRE: {
|
||||
itemEtcetera->futureActionFunc = (ItemEtceteraActionFunc)ItemEtcetera_UpdateRandomizedFireArrow;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -120,24 +120,13 @@ void func_80B857D0(ItemEtcetera* this, PlayState* play) {
|
||||
|
||||
void func_80B85824(ItemEtcetera* this, PlayState* play) {
|
||||
if (Actor_HasParent(&this->actor, play)) {
|
||||
if ((this->actor.params & 0xFF) == 7) {
|
||||
if (IS_RANDO) {
|
||||
Flags_SetTreasure(play, 0x1F);
|
||||
}
|
||||
}
|
||||
|
||||
if ((this->actor.params & 0xFF) == 1) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_OBTAINED_RUTOS_LETTER);
|
||||
Flags_SetSwitch(play, 0xB);
|
||||
}
|
||||
Actor_Kill(&this->actor);
|
||||
} else {
|
||||
if (!IS_RANDO) {
|
||||
Actor_OfferGetItem(&this->actor, play, this->getItemId, 30.0f, 50.0f);
|
||||
} else {
|
||||
GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(RC_LH_SUN, GI_ARROW_FIRE);
|
||||
GiveItemEntryFromActor(&this->actor, play, getItemEntry, 30.0f, 50.0f);
|
||||
}
|
||||
Actor_OfferGetItem(&this->actor, play, this->getItemId, 30.0f, 50.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@ -233,7 +222,6 @@ void ItemEtcetera_DrawThroughLens(Actor* thisx, PlayState* play) {
|
||||
|
||||
void ItemEtcetera_Draw(Actor* thisx, PlayState* play) {
|
||||
ItemEtcetera* this = (ItemEtcetera*)thisx;
|
||||
s32 type = this->actor.params & 0xFF;
|
||||
|
||||
func_8002EBCC(&this->actor, play, 0);
|
||||
func_8002ED80(&this->actor, play, 0);
|
||||
|
@ -38,4 +38,6 @@ typedef enum {
|
||||
/* 0x0D */ ITEM_ETC_KEY_SMALL_CHEST_GAME
|
||||
} ItemEtceteraType;
|
||||
|
||||
void ItemEtcetera_SpawnSparkles(ItemEtcetera* ItemEtcetera, PlayState* play);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user