mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-25 07:35:34 -07:00
Merge pull request #15 from garrettjoecox/a-few-more-hats
A few misc changes
This commit is contained in:
commit
18961d9496
10 changed files with 162 additions and 82 deletions
|
@ -1064,6 +1064,20 @@ static CollisionPoly snowballPoly;
|
|||
static Vec3f snowballPos;
|
||||
static f32 raycastResult;
|
||||
|
||||
static u32 iceBlockParams[] = {
|
||||
0x214,
|
||||
0x1,
|
||||
0x11,
|
||||
0x11,
|
||||
0x10,
|
||||
0x12,
|
||||
0x12,
|
||||
0x12,
|
||||
0x20,
|
||||
0x23,
|
||||
0x123,
|
||||
};
|
||||
|
||||
void RegisterSnowballs() {
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnSceneSpawnActors>([]() {
|
||||
if (gPlayState->sceneNum != SCENE_HYRULE_FIELD && gPlayState->sceneNum != SCENE_KAKARIKO_VILLAGE) {
|
||||
|
@ -1092,6 +1106,55 @@ void RegisterSnowballs() {
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnSceneSpawnActors>([]() {
|
||||
if (gPlayState->sceneNum != SCENE_LAKE_HYLIA) {
|
||||
return;
|
||||
}
|
||||
|
||||
int actorsSpawned = 0;
|
||||
|
||||
Vec3f spawnedIceBlockPos[20];
|
||||
|
||||
while (actorsSpawned < 20) {
|
||||
Vec3f iceBlockPos;
|
||||
iceBlockPos.x = (float)(Random(
|
||||
(-4200) + 10000,
|
||||
(3000) + 10000
|
||||
) - (float)10000.0f);
|
||||
iceBlockPos.y = -1313.0;
|
||||
iceBlockPos.z = (float)(Random(
|
||||
(2600) + 10000,
|
||||
(9000) + 10000
|
||||
) - (float)10000.0f);
|
||||
|
||||
raycastResult = BgCheck_AnyRaycastFloor1(&gPlayState->colCtx, &snowballPoly, &iceBlockPos);
|
||||
|
||||
if (raycastResult > BGCHECK_Y_MIN) {
|
||||
|
||||
bool overlaps = false;
|
||||
for (int i = 0; i < actorsSpawned; i++) {
|
||||
if (Math_Vec3f_DistXZ(&spawnedIceBlockPos[i], &iceBlockPos) < 300.0f) {
|
||||
overlaps = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (overlaps) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (LINK_IS_ADULT && !Flags_GetEventChkInf(EVENTCHKINF_RAISED_LAKE_HYLIA_WATER)) {
|
||||
iceBlockPos.y = raycastResult;
|
||||
}
|
||||
|
||||
Actor_Spawn(&gPlayState->actorCtx, gPlayState, ACTOR_BG_SPOT08_ICEBLOCK, iceBlockPos.x, iceBlockPos.y,
|
||||
iceBlockPos.z, 0, (s16)Random(0, 0xFFFF), 0, RandomElement(iceBlockParams), 0);
|
||||
spawnedIceBlockPos[actorsSpawned] = iceBlockPos;
|
||||
actorsSpawned++;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void InitMods() {
|
||||
|
|
|
@ -1681,7 +1681,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||
Matrix_MultVec3f(&sZeroVec, D_80160000);
|
||||
}
|
||||
|
||||
if (CVarGetInteger("gLetItSnow", 0)) {
|
||||
if (CVarGetInteger("gLetItSnow", 0) && !(this->stateFlags1 & PLAYER_STATE1_FIRST_PERSON)) {
|
||||
if (limbIndex == PLAYER_LIMB_HEAD) {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
|
|
|
@ -308,7 +308,7 @@ void BgSpot08Iceblock_Init(Actor* thisx, PlayState* play) {
|
|||
break;
|
||||
}
|
||||
|
||||
if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
|
||||
if (LINK_AGE_IN_YEARS == YEARS_CHILD && play->sceneNum == SCENE_ZORAS_FOUNTAIN) {
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "assets/objects/object_ganon_anime1/object_ganon_anime1.h"
|
||||
#include "assets/objects/object_ganon_anime2/object_ganon_anime2.h"
|
||||
#include "assets/scenes/dungeons/ganon_boss/ganon_boss_scene.h"
|
||||
#include "soh_assets.h"
|
||||
|
||||
#include "soh/frame_interpolation.h"
|
||||
#include "soh/Enhancements/boss-rush/BossRush.h"
|
||||
|
@ -3388,6 +3389,21 @@ void BossGanon_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s*
|
|||
|
||||
Matrix_MultVec3f(&sp1C, &this->unk_214);
|
||||
}
|
||||
|
||||
if (limbIndex == 14) {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Matrix_Push();
|
||||
Matrix_RotateZYX(7749, 0, -11956, MTXMODE_APPLY);
|
||||
Matrix_Translate(675.676f, -229.730f, 148.649f, MTXMODE_APPLY);
|
||||
Matrix_Scale(1.014f, 1.014f, 1.014f, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
Color_RGBA8 color = { 255, 0, 0, 255 };
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, color.r, color.g, color.b, color.a);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL);
|
||||
Matrix_Pop();
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
}
|
||||
|
||||
void BossGanon_InitRand(s32 seedInit0, s32 seedInit1, s32 seedInit2) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "z_en_bom_chu.h"
|
||||
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "soh_assets.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
|
||||
|
||||
|
@ -529,5 +530,15 @@ void EnBomChu_Draw(Actor* thisx, PlayState* play) {
|
|||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gBombchuDL);
|
||||
|
||||
if (CVarGetInteger("gLetItSnow", 0)) {
|
||||
Matrix_Push();
|
||||
Matrix_RotateZYX(0, -3100, 17047, MTXMODE_APPLY);
|
||||
Matrix_Translate(445.946f, -27.027f, 608.108f, MTXMODE_APPLY);
|
||||
Matrix_Scale(0.541f, 0.541f, 0.541f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL);
|
||||
Matrix_Pop();
|
||||
}
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "objects/object_dekunuts/object_dekunuts.h"
|
||||
#include "objects/object_hintnuts/object_hintnuts.h"
|
||||
#include "objects/object_shopnuts/object_shopnuts.h"
|
||||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/object_dns/object_dns.h"
|
||||
#include "objects/object_dnk/object_dnk.h"
|
||||
|
||||
|
@ -47,7 +48,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
},
|
||||
{
|
||||
ELEMTYPE_UNK0,
|
||||
{ 0xFFCFFFFF, 0x00, 0x08 },
|
||||
{ 0xFFCFFFFF, 0x02, 0x08 },
|
||||
{ 0xFFCFFFFF, 0x00, 0x00 },
|
||||
TOUCH_ON | TOUCH_SFX_WOOD,
|
||||
BUMP_ON,
|
||||
|
@ -72,6 +73,8 @@ void EnNutsball_Init(Actor* thisx, PlayState* play) {
|
|||
EnNutsball* this = (EnNutsball*)thisx;
|
||||
s32 pad;
|
||||
|
||||
this->collider.info.toucher.effect = 2;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 400.0f, ActorShadow_DrawCircle, 13.0f);
|
||||
Collider_InitCylinder(play, &this->collider);
|
||||
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
|
||||
|
@ -141,8 +144,8 @@ void func_80ABBBA8(EnNutsball* this, PlayState* play) {
|
|||
sp40.y = this->actor.world.pos.y + 4;
|
||||
sp40.z = this->actor.world.pos.z;
|
||||
|
||||
EffectSsHahen_SpawnBurst(play, &sp40, 6.0f, 0, 7, 3, 15, HAHEN_OBJECT_DEFAULT, 10, NULL);
|
||||
SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EN_OCTAROCK_ROCK);
|
||||
EffectSsIcePiece_SpawnBurst(play, &this->actor.world.pos, this->actor.scale.x / 10);
|
||||
SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_PL_ICE_BROKEN);
|
||||
Actor_Kill(&this->actor);
|
||||
} else {
|
||||
if (this->timer == -300) {
|
||||
|
@ -176,17 +179,19 @@ void EnNutsball_Draw(Actor* thisx, PlayState* play) {
|
|||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
if (CVarGetInteger("gNewDrops", 0) != 0) {
|
||||
if (CVarGetInteger("gNewDrops", 0) || CVarGetInteger("gLetItSnow", 0)) {
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 1 * (play->state.frames * 6),
|
||||
1 * (play->state.frames * 6), 32, 32, 1, 1 * (play->state.frames * 6),
|
||||
1 * (play->state.frames * 6), 32, 32));
|
||||
Matrix_Scale(25.0f,25.0f,25.0f,MTXMODE_APPLY);
|
||||
f32 scale = 12.0f;
|
||||
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (0 - 1) % 128, 32, 32, 1, 0, (1 * -2) % 128, 32, 32));
|
||||
|
||||
Matrix_RotateX(thisx->home.rot.z * 9.58738e-05f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gSPDisplayList(POLY_OPA_DISP++, sDListsNew[thisx->params]);
|
||||
Matrix_Translate(0.0f, -445.946f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_Scale(scale, scale, scale, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 50, 100, 255);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gEffIceFragment3DL);
|
||||
} else {
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY);
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include "objects/object_okuta/object_okuta.h"
|
||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
||||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE)
|
||||
|
||||
|
@ -45,7 +46,7 @@ static ColliderCylinderInit sProjectileColliderInit = {
|
|||
},
|
||||
{
|
||||
ELEMTYPE_UNK0,
|
||||
{ 0xFFCFFFFF, 0x00, 0x08 },
|
||||
{ 0xFFCFFFFF, 0x02, 0x08 },
|
||||
{ 0xFFCFFFFF, 0x00, 0x00 },
|
||||
TOUCH_ON | TOUCH_SFX_HARD,
|
||||
BUMP_ON,
|
||||
|
@ -519,38 +520,12 @@ void EnOkuta_ProjectileFly(EnOkuta* this, PlayState* play) {
|
|||
f32 temp_f20;
|
||||
f32 temp_f22;
|
||||
s32 i;
|
||||
for (s16 i = 0; i < ARRAY_COUNT(sEffectScales); i++) {
|
||||
phi_s0 += 10000;
|
||||
|
||||
temp_f20 = Rand_ZeroOne() * 5.0f;
|
||||
pos.x = (Math_SinS(phi_s0) * temp_f20) + this->actor.world.pos.x;
|
||||
pos.y = (Rand_ZeroOne() * 40.0f) + this->actor.world.pos.y + 5.0f;
|
||||
pos.z = (Math_CosS(phi_s0) * temp_f20) + this->actor.world.pos.z;
|
||||
|
||||
temp_f20 = (Rand_ZeroOne() * 5.0f) + 2.0f;
|
||||
velocity.x = Math_SinS(phi_s0) * temp_f20;
|
||||
temp_f22 = Rand_ZeroOne();
|
||||
velocity.y = (Rand_ZeroOne() * i * 2.5f) + (temp_f22 * 5.0f);
|
||||
velocity.z = Math_CosS(phi_s0) * temp_f20;
|
||||
|
||||
if (i == 0) {
|
||||
phi_v0 = 41;
|
||||
gravity = -450;
|
||||
} else if (i < 4) {
|
||||
phi_v0 = 37;
|
||||
gravity = -380;
|
||||
} else {
|
||||
phi_v0 = 69;
|
||||
gravity = -320;
|
||||
}
|
||||
EffectSsKakera_Spawn(play, &pos, &velocity, &this->actor.world.pos, gravity, phi_v0, 30, 5, 0,
|
||||
sEffectScales[i]/5, 3, 0, 70, 1, OBJECT_GAMEPLAY_FIELD_KEEP, gSilverRockFragmentsDL);
|
||||
}
|
||||
EffectSsIcePiece_SpawnBurst(play, &this->actor.world.pos, this->actor.scale.x / 10);
|
||||
} else {
|
||||
EffectSsHahen_SpawnBurst(play, &pos, 6.0f, 0, 1, 2, 15, 7, 10, gOctorokProjectileDL);
|
||||
}
|
||||
|
||||
SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EN_OCTAROCK_ROCK);
|
||||
SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_PL_ICE_BROKEN);
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
} else if (this->timer == -300) {
|
||||
|
@ -763,17 +738,19 @@ void EnOkuta_Draw(Actor* thisx, PlayState* play) {
|
|||
} else {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
if (CVarGetInteger("gNewDrops", 0) != 0) {
|
||||
if (CVarGetInteger("gNewDrops", 0) || CVarGetInteger("gLetItSnow", 0)) {
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 1 * (play->state.frames * 6),
|
||||
1 * (play->state.frames * 6), 32, 32, 1, 1 * (play->state.frames * 6),
|
||||
1 * (play->state.frames * 6), 32, 32));
|
||||
Matrix_Scale(7.0f,7.0f,7.0f,MTXMODE_APPLY);
|
||||
Matrix_RotateX(thisx->home.rot.z * (M_PI / 0x8000), MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gSilverRockDL);
|
||||
f32 scale = 12.0f;
|
||||
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (0 - 1) % 128, 32, 32, 1, 0, (1 * -2) % 128, 32, 32));
|
||||
|
||||
Matrix_RotateX(thisx->home.rot.z * 9.58738e-05f, MTXMODE_APPLY);
|
||||
Matrix_Translate(0.0f, -445.946f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_Scale(scale, scale, scale, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 50, 100, 255);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gEffIceFragment3DL);
|
||||
} else {
|
||||
Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY);
|
||||
Matrix_RotateZ(this->actor.home.rot.z * (M_PI / 0x8000), MTXMODE_APPLY);
|
||||
|
|
|
@ -2476,6 +2476,7 @@ s32 EnOssan_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot
|
|||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
case 3: {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Matrix_Push();
|
||||
|
@ -2489,6 +2490,18 @@ s32 EnOssan_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot
|
|||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Matrix_Push();
|
||||
Matrix_RotateZYX(-16163, 0, 2878, MTXMODE_APPLY);
|
||||
Matrix_Translate(905.406f, 0.0f, -27.027f, MTXMODE_APPLY);
|
||||
Matrix_Scale(1.318f, 1.318f, 1.318f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL);
|
||||
Matrix_Pop();
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Matrix_Push();
|
||||
|
@ -2543,6 +2556,16 @@ s32 EnOssan_OverrideLimbDrawKokiriShopkeeper(PlayState* play, s32 limbIndex, Gfx
|
|||
gSPSegment(POLY_OPA_DISP++, 0x0A, SEGMENTED_TO_VIRTUAL(sKokiriShopkeeperEyeTextures[this->eyeTextureIdx]));
|
||||
}
|
||||
|
||||
if (limbIndex == 9) {
|
||||
Matrix_Push();
|
||||
Matrix_RotateZYX(13948, 0, -1550, MTXMODE_APPLY);
|
||||
Matrix_Translate(1837.838f, 0.000f, 540.541f, MTXMODE_APPLY);
|
||||
Matrix_Scale(1.068f, 1.068f, 1.068f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL);
|
||||
Matrix_Pop();
|
||||
}
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
|
||||
return 0;
|
||||
|
@ -2571,8 +2594,8 @@ void EnOssan_DrawKokiriShopkeeper(Actor* thisx, PlayState* play) {
|
|||
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, EnOssan_SetEnvColor(play->state.gfxCtx, 0, 130, 70, 255));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, EnOssan_SetEnvColor(play->state.gfxCtx, 110, 170, 20, 255));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, EnOssan_SetEnvColor(play->state.gfxCtx, 255, 0, 0, 255));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, EnOssan_SetEnvColor(play->state.gfxCtx, 255, 0, 0, 255));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x0C, EnOssan_EndDList(play->state.gfxCtx));
|
||||
|
||||
SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnOssan_OverrideLimbDrawKokiriShopkeeper, NULL, this);
|
||||
|
@ -2683,7 +2706,7 @@ void EnOssan_DrawBombchuShopkeeper(Actor* thisx, PlayState* play) {
|
|||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sBombchuShopkeeperEyeTextures[this->eyeTextureIdx]));
|
||||
SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, NULL, this);
|
||||
SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, EnOssan_PostLimbDraw, this);
|
||||
EnOssan_DrawCursor(play, this, this->cursorX, this->cursorY, this->cursorZ, this->drawCursor);
|
||||
EnOssan_DrawStickDirectionPrompts(play, this);
|
||||
|
||||
|
|
|
@ -2229,21 +2229,6 @@ void EnZf_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
|
|||
Matrix_MultVec3f(&zeroVec, &this->bodyPartsPos[bodyPart]);
|
||||
}
|
||||
}
|
||||
|
||||
if (CVarGetInteger("gLetItSnow", 0)) {
|
||||
if (limbIndex == 9) {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Matrix_Push();
|
||||
Matrix_RotateZYX(0, 0, -22584, MTXMODE_APPLY);
|
||||
Matrix_Translate(0.0f, 270.27f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_Scale(0.628f, 0.628f, 0.628f, MTXMODE_APPLY);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 0, 255);
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL);
|
||||
Matrix_Pop();
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static Gfx D_80B4A2F8[] = {
|
||||
|
|
|
@ -178,19 +178,19 @@ void EffectSsBomb2_Update(PlayState* play, u32 index, EffectSs* this) {
|
|||
divisor = this->life - 13;
|
||||
this->rPrimColorR = func_80027DD4(this->rPrimColorR, 255, divisor);
|
||||
this->rPrimColorG = func_80027DD4(this->rPrimColorG, 255, divisor);
|
||||
this->rPrimColorB = func_80027DD4(this->rPrimColorB, 150, divisor);
|
||||
this->rPrimColorB = func_80027DD4(this->rPrimColorB, 255, divisor);
|
||||
this->rPrimColorA = func_80027DD4(this->rPrimColorA, 255, divisor);
|
||||
this->rEnvColorR = func_80027DD4(this->rEnvColorR, 150, divisor);
|
||||
this->rEnvColorG = func_80027DD4(this->rEnvColorG, 0, divisor);
|
||||
this->rEnvColorB = func_80027DD4(this->rEnvColorB, 0, divisor);
|
||||
this->rEnvColorR = func_80027DD4(this->rEnvColorR, 255, divisor);
|
||||
this->rEnvColorG = func_80027DD4(this->rEnvColorG, 255, divisor);
|
||||
this->rEnvColorB = func_80027DD4(this->rEnvColorB, 255, divisor);
|
||||
} else if ((this->life < 14) && (this->life > -1)) {
|
||||
divisor = this->life + 1;
|
||||
this->rPrimColorR = func_80027DD4(this->rPrimColorR, 50, divisor);
|
||||
this->rPrimColorG = func_80027DD4(this->rPrimColorG, 50, divisor);
|
||||
this->rPrimColorB = func_80027DD4(this->rPrimColorB, 50, divisor);
|
||||
this->rPrimColorA = func_80027DD4(this->rPrimColorA, 150, divisor);
|
||||
this->rEnvColorR = func_80027DD4(this->rEnvColorR, 10, divisor);
|
||||
this->rEnvColorG = func_80027DD4(this->rEnvColorG, 10, divisor);
|
||||
this->rEnvColorB = func_80027DD4(this->rEnvColorB, 10, divisor);
|
||||
this->rPrimColorR = func_80027DD4(this->rPrimColorR, 255, divisor);
|
||||
this->rPrimColorG = func_80027DD4(this->rPrimColorG, 255, divisor);
|
||||
this->rPrimColorB = func_80027DD4(this->rPrimColorB, 255, divisor);
|
||||
this->rPrimColorA = func_80027DD4(this->rPrimColorA, 255, divisor);
|
||||
this->rEnvColorR = func_80027DD4(this->rEnvColorR, 255, divisor);
|
||||
this->rEnvColorG = func_80027DD4(this->rEnvColorG, 255, divisor);
|
||||
this->rEnvColorB = func_80027DD4(this->rEnvColorB, 255, divisor);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue