mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
area jan (#937)
* couple jan * pipe includes cleanup * jan_13 checkpoint * Rafael checkpoint * jan_05 ok * jan_0X done * fix spear guy name * all jan ok * jan done * no halves --------- Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
parent
6c606383e8
commit
768e88f20d
@ -39,7 +39,7 @@ typedef struct DeadEnemy {
|
|||||||
/* 0x06C */ s32 varTable[16];
|
/* 0x06C */ s32 varTable[16];
|
||||||
/* 0x0AC */ s32 aiDetectFlags;
|
/* 0x0AC */ s32 aiDetectFlags;
|
||||||
/* 0x0B0 */ s32 aiFlags;
|
/* 0x0B0 */ s32 aiFlags;
|
||||||
/* 0x0B4 */ s8 aiPaused;
|
/* 0x0B4 */ s8 aiSuspendTime;
|
||||||
/* 0x0B5 */ s8 instigatorValue;
|
/* 0x0B5 */ s8 instigatorValue;
|
||||||
/* 0x0B6 */ char unk_B6[2];
|
/* 0x0B6 */ char unk_B6[2];
|
||||||
/* 0x0B8 */ EvtScript* unk_B8; // some bytecode
|
/* 0x0B8 */ EvtScript* unk_B8; // some bytecode
|
||||||
|
@ -502,7 +502,8 @@ enum Emotes {
|
|||||||
|
|
||||||
enum Emoters {
|
enum Emoters {
|
||||||
EMOTER_PLAYER = 0,
|
EMOTER_PLAYER = 0,
|
||||||
EMOTER_NPC = 1
|
EMOTER_NPC = 1,
|
||||||
|
EMOTER_POS = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum EasingType {
|
enum EasingType {
|
||||||
@ -1831,9 +1832,9 @@ enum ItemIDs {
|
|||||||
ITEM_STAR_STONE = 0x0000006C,
|
ITEM_STAR_STONE = 0x0000006C,
|
||||||
ITEM_SNEAKY_PARASOL = 0x0000006D,
|
ITEM_SNEAKY_PARASOL = 0x0000006D,
|
||||||
ITEM_KOOT_KOOPA_LEGENDS = 0x0000006E,
|
ITEM_KOOT_KOOPA_LEGENDS = 0x0000006E,
|
||||||
ITEM_KOOT_MERLUVLEE_AUTOGRAPH = 0x0000006F,
|
ITEM_KOOT_LUIGIS_AUTOGRAPH = 0x0000006F,
|
||||||
ITEM_KOOT_EMPTY_WALLET = 0x00000070,
|
ITEM_KOOT_EMPTY_WALLET = 0x00000070,
|
||||||
ITEM_KOOT_LUIGI_AUTOGRAPH = 0x00000071,
|
ITEM_KOOT_MERLUVLEES_AUTOGRAPH = 0x00000071,
|
||||||
ITEM_KOOT_SHELL = 0x00000072,
|
ITEM_KOOT_SHELL = 0x00000072,
|
||||||
ITEM_KOOT_OLD_PHOTO = 0x00000073,
|
ITEM_KOOT_OLD_PHOTO = 0x00000073,
|
||||||
ITEM_KOOT_GLASSES = 0x00000074,
|
ITEM_KOOT_GLASSES = 0x00000074,
|
||||||
@ -5023,11 +5024,18 @@ enum EnemyFlags {
|
|||||||
ENEMY_FLAG_80000000 = 0x80000000,
|
ENEMY_FLAG_80000000 = 0x80000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define COMMON_PASSIVE_FLAGS \
|
||||||
|
ENEMY_FLAG_PASSIVE \
|
||||||
|
| ENEMY_FLAG_ENABLE_HIT_SCRIPT \
|
||||||
|
| ENEMY_FLAG_100 \
|
||||||
|
| ENEMY_FLAG_400 \
|
||||||
|
| ENEMY_FLAG_800
|
||||||
|
|
||||||
// used with enemy->aiFlags
|
// used with enemy->aiFlags
|
||||||
enum EnemyAIFlags {
|
enum EnemyAIFlags {
|
||||||
ENEMY_AI_FLAG_1 = 0x00000001,
|
ENEMY_AI_FLAG_1 = 0x00000001,
|
||||||
ENEMY_AI_FLAG_2 = 0x00000002, // do not move; do not sense player
|
ENEMY_AI_FLAG_2 = 0x00000002, // do not move; do not sense player
|
||||||
ENEMY_AI_FLAG_4 = 0x00000004, // pause ai? reset ai?
|
ENEMY_AI_FLAG_SUSPEND = 0x00000004,
|
||||||
ENEMY_AI_FLAG_8 = 0x00000008,
|
ENEMY_AI_FLAG_8 = 0x00000008,
|
||||||
ENEMY_AI_FLAG_10 = 0x00000010,
|
ENEMY_AI_FLAG_10 = 0x00000010,
|
||||||
ENEMY_AI_FLAG_20 = 0x00000020,
|
ENEMY_AI_FLAG_20 = 0x00000020,
|
||||||
|
@ -343,7 +343,7 @@ typedef struct Enemy {
|
|||||||
/* 0xAC */ u8 aiDetectFlags; // detect player flags: 1 = require line of sight | 2 = adjust hitbox for moving player
|
/* 0xAC */ u8 aiDetectFlags; // detect player flags: 1 = require line of sight | 2 = adjust hitbox for moving player
|
||||||
/* 0xAD */ char unk_AD[3];
|
/* 0xAD */ char unk_AD[3];
|
||||||
/* 0xB0 */ u32 aiFlags;
|
/* 0xB0 */ u32 aiFlags;
|
||||||
/* 0xB4 */ s8 aiPaused;
|
/* 0xB4 */ s8 aiSuspendTime;
|
||||||
/* 0xB5 */ s8 instigatorValue; // value is passed to first actor in formation if a battle is triggered with this enemy
|
/* 0xB5 */ s8 instigatorValue; // value is passed to first actor in formation if a battle is triggered with this enemy
|
||||||
/* 0xB6 */ char unk_B6[2];
|
/* 0xB6 */ char unk_B6[2];
|
||||||
/* 0xB8 */ EvtScript* unk_B8; // some bytecode
|
/* 0xB8 */ EvtScript* unk_B8; // some bytecode
|
||||||
|
36
src/23680.c
36
src/23680.c
@ -682,21 +682,23 @@ void basic_ai_loiter(Evt* script, MobileAISettings* aiSettings, EnemyDetectVolum
|
|||||||
f32 yaw;
|
f32 yaw;
|
||||||
s32 emoteTemp;
|
s32 emoteTemp;
|
||||||
|
|
||||||
if (aiSettings->playerSearchInterval >= 0 && basic_ai_check_player_dist(territory, enemy, aiSettings->chaseRadius, aiSettings->chaseOffsetDist, 0)) {
|
if (aiSettings->playerSearchInterval >= 0) {
|
||||||
x = npc->pos.x;
|
if (basic_ai_check_player_dist(territory, enemy, aiSettings->chaseRadius, aiSettings->chaseOffsetDist, 0)) {
|
||||||
y = npc->pos.y;
|
x = npc->pos.x;
|
||||||
z = npc->pos.z;
|
y = npc->pos.y;
|
||||||
yaw = atan2(npc->pos.x, npc->pos.z, gPlayerStatusPtr->position.x, gPlayerStatusPtr->position.z);
|
z = npc->pos.z;
|
||||||
if (!npc_test_move_simple_with_slipping(npc->collisionChannel, &x, &y, &z, aiSettings->chaseSpeed, yaw, npc->collisionHeight, npc->collisionRadius)) {
|
yaw = atan2(npc->pos.x, npc->pos.z, gPlayerStatusPtr->position.x, gPlayerStatusPtr->position.z);
|
||||||
npc->yaw = yaw;
|
if (!npc_test_move_simple_with_slipping(npc->collisionChannel, &x, &y, &z, aiSettings->chaseSpeed, yaw, npc->collisionHeight, npc->collisionRadius)) {
|
||||||
ai_enemy_play_sound(npc, SOUND_2F4, SOUND_PARAM_MORE_QUIET);
|
npc->yaw = yaw;
|
||||||
fx_emote(EMOTE_EXCLAMATION, npc, 0, npc->collisionHeight, 1.0f, 2.0f, -20.0f, 15, &emoteTemp);
|
ai_enemy_play_sound(npc, SOUND_2F4, SOUND_PARAM_MORE_QUIET);
|
||||||
if (enemy->npcSettings->actionFlags & AI_ACTION_JUMP_WHEN_SEE_PLAYER) {
|
fx_emote(EMOTE_EXCLAMATION, npc, 0, npc->collisionHeight, 1.0f, 2.0f, -20.0f, 15, &emoteTemp);
|
||||||
script->AI_TEMP_STATE = AI_STATE_ALERT_INIT;
|
if (enemy->npcSettings->actionFlags & AI_ACTION_JUMP_WHEN_SEE_PLAYER) {
|
||||||
} else {
|
script->AI_TEMP_STATE = AI_STATE_ALERT_INIT;
|
||||||
script->AI_TEMP_STATE = AI_STATE_CHASE_INIT;
|
} else {
|
||||||
|
script->AI_TEMP_STATE = AI_STATE_CHASE_INIT;
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -858,7 +860,7 @@ ApiStatus BasicAI_Main(Evt* script, s32 isInitialCall) {
|
|||||||
territory.halfHeight = 65.0f;
|
territory.halfHeight = 65.0f;
|
||||||
territory.detectFlags = 0;
|
territory.detectFlags = 0;
|
||||||
|
|
||||||
if (isInitialCall || enemy->aiFlags & ENEMY_AI_FLAG_4) {
|
if (isInitialCall || enemy->aiFlags & ENEMY_AI_FLAG_SUSPEND) {
|
||||||
script->AI_TEMP_STATE = AI_STATE_WANDER_INIT;
|
script->AI_TEMP_STATE = AI_STATE_WANDER_INIT;
|
||||||
npc->duration = 0;
|
npc->duration = 0;
|
||||||
|
|
||||||
@ -873,14 +875,14 @@ ApiStatus BasicAI_Main(Evt* script, s32 isInitialCall) {
|
|||||||
npc->flags |= NPC_FLAG_8;
|
npc->flags |= NPC_FLAG_8;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enemy->aiFlags & ENEMY_AI_FLAG_4) {
|
if (enemy->aiFlags & ENEMY_AI_FLAG_SUSPEND) {
|
||||||
script->AI_TEMP_STATE = AI_STATE_SUSPEND;
|
script->AI_TEMP_STATE = AI_STATE_SUSPEND;
|
||||||
script->functionTemp[1] = AI_STATE_WANDER_INIT;
|
script->functionTemp[1] = AI_STATE_WANDER_INIT;
|
||||||
} else if (enemy->flags & ENEMY_FLAG_40000000) {
|
} else if (enemy->flags & ENEMY_FLAG_40000000) {
|
||||||
script->AI_TEMP_STATE = AI_STATE_CHASE_INIT;
|
script->AI_TEMP_STATE = AI_STATE_CHASE_INIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
enemy->aiFlags &= ~ENEMY_AI_FLAG_4;
|
enemy->aiFlags &= ~ENEMY_AI_FLAG_SUSPEND;
|
||||||
enemy->flags &= ~ENEMY_FLAG_40000000;
|
enemy->flags &= ~ENEMY_FLAG_40000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ void basic_ai_suspend(Evt* script) {
|
|||||||
Enemy* enemy = script->owner1.enemy;
|
Enemy* enemy = script->owner1.enemy;
|
||||||
|
|
||||||
get_npc_unsafe(enemy->npcID);
|
get_npc_unsafe(enemy->npcID);
|
||||||
if (enemy->aiPaused == 0) {
|
if (enemy->aiSuspendTime == 0) {
|
||||||
script->functionTemp[0] = script->functionTemp[1];
|
script->functionTemp[0] = script->functionTemp[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#include "battle/battle.h"
|
#include "battle/battle.h"
|
||||||
#include "script_api/battle.h"
|
#include "script_api/battle.h"
|
||||||
#include "sprite/npc/ShyGuy.h"
|
#include "sprite/npc/ShyGuy.h"
|
||||||
#include "sprite/npc/JungleGuy.h"
|
#include "sprite/npc/SpearGuy.h"
|
||||||
|
|
||||||
#define NAMESPACE b_area_jan_spear_guy
|
#define NAMESPACE b_area_jan_spear_guy
|
||||||
|
|
||||||
@ -21,38 +21,38 @@ extern Formation N(specialFormation_8021A8C0);
|
|||||||
extern Formation N(specialFormation_8021A8DC);
|
extern Formation N(specialFormation_8021A8DC);
|
||||||
|
|
||||||
s32 N(idleAnimations_802185C0)[] = {
|
s32 N(idleAnimations_802185C0)[] = {
|
||||||
STATUS_NORMAL, ANIM_JungleGuy_Anim04,
|
STATUS_NORMAL, ANIM_SpearGuy_Anim04,
|
||||||
STATUS_STONE, ANIM_JungleGuy_Anim02,
|
STATUS_STONE, ANIM_SpearGuy_Anim02,
|
||||||
STATUS_SLEEP, ANIM_JungleGuy_Anim0D,
|
STATUS_SLEEP, ANIM_SpearGuy_Anim0D,
|
||||||
STATUS_POISON, ANIM_JungleGuy_Anim0F,
|
STATUS_POISON, ANIM_SpearGuy_Anim0F,
|
||||||
STATUS_STOP, ANIM_JungleGuy_Anim02,
|
STATUS_STOP, ANIM_SpearGuy_Anim02,
|
||||||
STATUS_STATIC, ANIM_JungleGuy_Anim04,
|
STATUS_STATIC, ANIM_SpearGuy_Anim04,
|
||||||
STATUS_PARALYZE, ANIM_JungleGuy_Anim02,
|
STATUS_PARALYZE, ANIM_SpearGuy_Anim02,
|
||||||
STATUS_DIZZY, ANIM_JungleGuy_Anim0F,
|
STATUS_DIZZY, ANIM_SpearGuy_Anim0F,
|
||||||
STATUS_FEAR, ANIM_JungleGuy_Anim0F,
|
STATUS_FEAR, ANIM_SpearGuy_Anim0F,
|
||||||
STATUS_END,
|
STATUS_END,
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 N(idleAnimations_8021860C)[] = {
|
s32 N(idleAnimations_8021860C)[] = {
|
||||||
STATUS_NORMAL, ANIM_JungleGuy_Anim03,
|
STATUS_NORMAL, ANIM_SpearGuy_Anim03,
|
||||||
STATUS_STONE, ANIM_JungleGuy_Anim0D,
|
STATUS_STONE, ANIM_SpearGuy_Anim0D,
|
||||||
STATUS_SLEEP, ANIM_JungleGuy_Anim0D,
|
STATUS_SLEEP, ANIM_SpearGuy_Anim0D,
|
||||||
STATUS_POISON, ANIM_JungleGuy_Anim0F,
|
STATUS_POISON, ANIM_SpearGuy_Anim0F,
|
||||||
STATUS_STOP, ANIM_JungleGuy_Anim01,
|
STATUS_STOP, ANIM_SpearGuy_Anim01,
|
||||||
STATUS_STATIC, ANIM_JungleGuy_Anim03,
|
STATUS_STATIC, ANIM_SpearGuy_Anim03,
|
||||||
STATUS_PARALYZE, ANIM_JungleGuy_Anim01,
|
STATUS_PARALYZE, ANIM_SpearGuy_Anim01,
|
||||||
STATUS_DIZZY, ANIM_JungleGuy_Anim0F,
|
STATUS_DIZZY, ANIM_SpearGuy_Anim0F,
|
||||||
STATUS_FEAR, ANIM_JungleGuy_Anim0F,
|
STATUS_FEAR, ANIM_SpearGuy_Anim0F,
|
||||||
STATUS_END,
|
STATUS_END,
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 N(idleAnimations_80218658)[] = {
|
s32 N(idleAnimations_80218658)[] = {
|
||||||
STATUS_NORMAL, ANIM_JungleGuy_Anim14,
|
STATUS_NORMAL, ANIM_SpearGuy_Anim14,
|
||||||
STATUS_END,
|
STATUS_END,
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 N(idleAnimations_80218664)[] = {
|
s32 N(idleAnimations_80218664)[] = {
|
||||||
STATUS_NORMAL, ANIM_JungleGuy_Anim19,
|
STATUS_NORMAL, ANIM_SpearGuy_Anim19,
|
||||||
STATUS_END,
|
STATUS_END,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -215,11 +215,11 @@ EvtScript N(init_80218980) = {
|
|||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
EVT_CASE_EQ(0)
|
EVT_CASE_EQ(0)
|
||||||
EVT_EXEC_WAIT(N(setSpearStance))
|
EVT_EXEC_WAIT(N(setSpearStance))
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim04)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim04)
|
||||||
EVT_CASE_EQ(1)
|
EVT_CASE_EQ(1)
|
||||||
EVT_EXEC_WAIT(N(setSpearStance))
|
EVT_EXEC_WAIT(N(setSpearStance))
|
||||||
EVT_CALL(SetPartEventFlags, -127, 2, 16)
|
EVT_CALL(SetPartEventFlags, -127, 2, 16)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim03)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim03)
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(takeTurn_8021BCB4)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(takeTurn_8021BCB4)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(handleEvent_80218E3C)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(handleEvent_80218E3C)))
|
||||||
@ -232,7 +232,7 @@ EvtScript N(init_80218980) = {
|
|||||||
EVT_CASE_OR_EQ(6)
|
EVT_CASE_OR_EQ(6)
|
||||||
EVT_CALL(SetPartEventBits, ACTOR_SELF, 2, ACTOR_EVENT_FLAG_SPIKY_FRONT, 0)
|
EVT_CALL(SetPartEventBits, ACTOR_SELF, 2, ACTOR_EVENT_FLAG_SPIKY_FRONT, 0)
|
||||||
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 2, EVT_PTR(N(idleAnimations_8021860C)))
|
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 2, EVT_PTR(N(idleAnimations_8021860C)))
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim03)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim03)
|
||||||
EVT_END_CASE_GROUP
|
EVT_END_CASE_GROUP
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -288,14 +288,14 @@ EvtScript N(idle_80218BE0) = {
|
|||||||
EvtScript N(80218D7C) = {
|
EvtScript N(80218D7C) = {
|
||||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim06)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim06)
|
||||||
EVT_EXEC_WAIT(DoReturnHome)
|
EVT_EXEC_WAIT(DoReturnHome)
|
||||||
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LVar0)
|
||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
EVT_CASE_EQ(0)
|
EVT_CASE_EQ(0)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim04)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim04)
|
||||||
EVT_CASE_EQ(1)
|
EVT_CASE_EQ(1)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim03)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim03)
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
@ -309,8 +309,8 @@ EvtScript N(handleEvent_80218E3C) = {
|
|||||||
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
|
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
|
||||||
EVT_CASE_OR_EQ(EVENT_HIT)
|
EVT_CASE_OR_EQ(EVENT_HIT)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim07)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim07)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim08)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim08)
|
||||||
EVT_EXEC_WAIT(N(80218B5C))
|
EVT_EXEC_WAIT(N(80218B5C))
|
||||||
EVT_EXEC_WAIT(DoNormalHit)
|
EVT_EXEC_WAIT(DoNormalHit)
|
||||||
EVT_END_CASE_GROUP
|
EVT_END_CASE_GROUP
|
||||||
@ -320,17 +320,17 @@ EvtScript N(handleEvent_80218E3C) = {
|
|||||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVarB)
|
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVarB)
|
||||||
EVT_IF_FLAG(LVarB, STATUS_FLAG_SLEEP | STATUS_FLAG_FEAR | STATUS_FLAG_DIZZY)
|
EVT_IF_FLAG(LVarB, STATUS_FLAG_SLEEP | STATUS_FLAG_FEAR | STATUS_FLAG_DIZZY)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim0A)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim0A)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim0C)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim0C)
|
||||||
EVT_ELSE
|
EVT_ELSE
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim0B)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim0B)
|
||||||
EVT_SET_CONST(LVar2, -1)
|
EVT_SET_CONST(LVar2, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_ELSE
|
EVT_ELSE
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim0A)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim0A)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim0C)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim0C)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_EXEC_WAIT(DoBurnHit)
|
EVT_EXEC_WAIT(DoBurnHit)
|
||||||
EVT_CASE_EQ(EVENT_BURN_DEATH)
|
EVT_CASE_EQ(EVENT_BURN_DEATH)
|
||||||
@ -339,88 +339,88 @@ EvtScript N(handleEvent_80218E3C) = {
|
|||||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVarB)
|
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVarB)
|
||||||
EVT_IF_FLAG(LVarB, STATUS_FLAG_SLEEP | STATUS_FLAG_FEAR | STATUS_FLAG_DIZZY)
|
EVT_IF_FLAG(LVarB, STATUS_FLAG_SLEEP | STATUS_FLAG_FEAR | STATUS_FLAG_DIZZY)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim0A)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim0A)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim0C)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim0C)
|
||||||
EVT_EXEC_WAIT(DoBurnHit)
|
EVT_EXEC_WAIT(DoBurnHit)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim0C)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim0C)
|
||||||
EVT_EXEC_WAIT(DoDeath)
|
EVT_EXEC_WAIT(DoDeath)
|
||||||
EVT_ELSE
|
EVT_ELSE
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim0B)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim0B)
|
||||||
EVT_SET_CONST(LVar2, -1)
|
EVT_SET_CONST(LVar2, -1)
|
||||||
EVT_EXEC_WAIT(DoBurnHit)
|
EVT_EXEC_WAIT(DoBurnHit)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim0B)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim0B)
|
||||||
EVT_EXEC_WAIT(DoDeath)
|
EVT_EXEC_WAIT(DoDeath)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_ELSE
|
EVT_ELSE
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim0A)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim0A)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim0C)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim0C)
|
||||||
EVT_EXEC_WAIT(DoBurnHit)
|
EVT_EXEC_WAIT(DoBurnHit)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim0C)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim0C)
|
||||||
EVT_EXEC_WAIT(DoDeath)
|
EVT_EXEC_WAIT(DoDeath)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim07)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim07)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim08)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim08)
|
||||||
EVT_EXEC_WAIT(N(80218B5C))
|
EVT_EXEC_WAIT(N(80218B5C))
|
||||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim07)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim07)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim08)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim08)
|
||||||
EVT_EXEC_WAIT(N(80218B5C))
|
EVT_EXEC_WAIT(N(80218B5C))
|
||||||
EVT_EXEC_WAIT(DoSpinSmashHit)
|
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim09)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim09)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim08)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim08)
|
||||||
EVT_EXEC_WAIT(N(80218B5C))
|
EVT_EXEC_WAIT(N(80218B5C))
|
||||||
EVT_EXEC_WAIT(DoDeath)
|
EVT_EXEC_WAIT(DoDeath)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_CASE_EQ(EVENT_SHOCK_HIT)
|
EVT_CASE_EQ(EVENT_SHOCK_HIT)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim07)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim07)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim08)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim08)
|
||||||
EVT_EXEC_WAIT(N(80218B5C))
|
EVT_EXEC_WAIT(N(80218B5C))
|
||||||
EVT_EXEC_WAIT(DoShockHit)
|
EVT_EXEC_WAIT(DoShockHit)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim07)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim07)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim08)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim08)
|
||||||
EVT_EXEC_WAIT(N(80218B5C))
|
EVT_EXEC_WAIT(N(80218B5C))
|
||||||
EVT_EXEC_WAIT(DoJumpBack)
|
EVT_EXEC_WAIT(DoJumpBack)
|
||||||
EVT_EXEC_WAIT(N(80218D7C))
|
EVT_EXEC_WAIT(N(80218D7C))
|
||||||
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
|
EVT_CASE_EQ(EVENT_SHOCK_DEATH)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim07)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim07)
|
||||||
EVT_EXEC_WAIT(DoShockHit)
|
EVT_EXEC_WAIT(DoShockHit)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim09)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim09)
|
||||||
EVT_EXEC_WAIT(DoDeath)
|
EVT_EXEC_WAIT(DoDeath)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_CASE_OR_EQ(EVENT_SCRIPTED_IMMUNE)
|
EVT_CASE_OR_EQ(EVENT_SCRIPTED_IMMUNE)
|
||||||
EVT_CASE_OR_EQ(EVENT_IMMUNE)
|
EVT_CASE_OR_EQ(EVENT_IMMUNE)
|
||||||
EVT_CASE_OR_EQ(EVENT_AIR_LIFT_FAILED)
|
EVT_CASE_OR_EQ(EVENT_AIR_LIFT_FAILED)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim03)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim03)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim04)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim04)
|
||||||
EVT_EXEC_WAIT(N(80218B5C))
|
EVT_EXEC_WAIT(N(80218B5C))
|
||||||
EVT_EXEC_WAIT(DoImmune)
|
EVT_EXEC_WAIT(DoImmune)
|
||||||
EVT_END_CASE_GROUP
|
EVT_END_CASE_GROUP
|
||||||
EVT_CASE_EQ(EVENT_DEATH)
|
EVT_CASE_EQ(EVENT_DEATH)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim07)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim07)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim08)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim08)
|
||||||
EVT_EXEC_WAIT(N(80218B5C))
|
EVT_EXEC_WAIT(N(80218B5C))
|
||||||
EVT_EXEC_WAIT(DoNormalHit)
|
EVT_EXEC_WAIT(DoNormalHit)
|
||||||
EVT_WAIT(10)
|
EVT_WAIT(10)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim09)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim09)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim08)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim08)
|
||||||
EVT_EXEC_WAIT(N(80218B5C))
|
EVT_EXEC_WAIT(N(80218B5C))
|
||||||
EVT_EXEC_WAIT(DoDeath)
|
EVT_EXEC_WAIT(DoDeath)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -429,26 +429,26 @@ EvtScript N(handleEvent_80218E3C) = {
|
|||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
EVT_CASE_EQ(0)
|
EVT_CASE_EQ(0)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim04)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim04)
|
||||||
EVT_EXEC_WAIT(DoRecover)
|
EVT_EXEC_WAIT(DoRecover)
|
||||||
EVT_CASE_EQ(1)
|
EVT_CASE_EQ(1)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim03)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim03)
|
||||||
EVT_EXEC_WAIT(DoRecover)
|
EVT_EXEC_WAIT(DoRecover)
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_CASE_EQ(EVENT_SCARE_AWAY)
|
EVT_CASE_EQ(EVENT_SCARE_AWAY)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim06)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim06)
|
||||||
EVT_SET_CONST(LVar2, ANIM_JungleGuy_Anim07)
|
EVT_SET_CONST(LVar2, ANIM_SpearGuy_Anim07)
|
||||||
EVT_EXEC_WAIT(DoScareAway)
|
EVT_EXEC_WAIT(DoScareAway)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
|
EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim04)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim04)
|
||||||
EVT_EXEC_WAIT(DoAirLift)
|
EVT_EXEC_WAIT(DoAirLift)
|
||||||
EVT_CASE_EQ(EVENT_BLOW_AWAY)
|
EVT_CASE_EQ(EVENT_BLOW_AWAY)
|
||||||
EVT_SET_CONST(LVar0, 2)
|
EVT_SET_CONST(LVar0, 2)
|
||||||
EVT_SET_CONST(LVar1, ANIM_JungleGuy_Anim04)
|
EVT_SET_CONST(LVar1, ANIM_SpearGuy_Anim04)
|
||||||
EVT_EXEC_WAIT(DoBlowAway)
|
EVT_EXEC_WAIT(DoBlowAway)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_CASE_EQ(EVENT_SPIKE_TAUNT)
|
EVT_CASE_EQ(EVENT_SPIKE_TAUNT)
|
||||||
@ -516,7 +516,7 @@ EvtScript N(spearStab) = {
|
|||||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_63)
|
||||||
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||||
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
EVT_CALL(func_8024ECF8, -1, 1, 0)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim06)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim06)
|
||||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
|
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
@ -530,9 +530,9 @@ EvtScript N(spearStab) = {
|
|||||||
EVT_ADD(LVar2, 1)
|
EVT_ADD(LVar2, 1)
|
||||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim04)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim04)
|
||||||
EVT_WAIT(5)
|
EVT_WAIT(5)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim1A)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim1A)
|
||||||
EVT_WAIT(15)
|
EVT_WAIT(15)
|
||||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, 0, 0, 1, BS_FLAGS1_10)
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, 0, 0, 1, BS_FLAGS1_10)
|
||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
@ -540,7 +540,7 @@ EvtScript N(spearStab) = {
|
|||||||
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
|
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
|
||||||
EVT_SET(LVarA, LVar0)
|
EVT_SET(LVarA, LVar0)
|
||||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_309)
|
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_309)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim1B)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim1B)
|
||||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
|
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 30)
|
EVT_SUB(LVar0, 30)
|
||||||
@ -566,7 +566,7 @@ EvtScript N(spearStab) = {
|
|||||||
EVT_END_CASE_GROUP
|
EVT_END_CASE_GROUP
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_309)
|
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_309)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim1B)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim1B)
|
||||||
EVT_WAIT(5)
|
EVT_WAIT(5)
|
||||||
EVT_WAIT(2)
|
EVT_WAIT(2)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
@ -593,7 +593,7 @@ EvtScript N(summonBackup) = {
|
|||||||
EVT_CALL(MoveBattleCamOver, 15)
|
EVT_CALL(MoveBattleCamOver, 15)
|
||||||
EVT_WAIT(15)
|
EVT_WAIT(15)
|
||||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_B)
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_B)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim05)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim05)
|
||||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0))
|
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0))
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_WAIT(5)
|
EVT_WAIT(5)
|
||||||
@ -604,10 +604,10 @@ EvtScript N(summonBackup) = {
|
|||||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 10)
|
EVT_SUB(LVar0, 10)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim05)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim05)
|
||||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim10)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim10)
|
||||||
EVT_WAIT(25)
|
EVT_WAIT(25)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_WAIT(5)
|
EVT_WAIT(5)
|
||||||
@ -618,22 +618,22 @@ EvtScript N(summonBackup) = {
|
|||||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar0, 20)
|
EVT_ADD(LVar0, 20)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim05)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim05)
|
||||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim10)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim10)
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 10)
|
EVT_SUB(LVar0, 10)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim05)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim05)
|
||||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar1, 15)
|
EVT_ADD(LVar1, 15)
|
||||||
EVT_CALL(PlayEffect, EFFECT_SPARKLES, 0, LVar0, LVar1, LVar2, 30, 0, 0, 0, 0, 0, 0, 0, 0)
|
EVT_CALL(PlayEffect, EFFECT_SPARKLES, 0, LVar0, LVar1, LVar2, 30, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_206D)
|
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_206D)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim0E)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim0E)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_CALL(GetOriginalActorType, ACTOR_SELF, LVar0)
|
EVT_CALL(GetOriginalActorType, ACTOR_SELF, LVar0)
|
||||||
EVT_CALL(EnemyCreateTargetList, 32772)
|
EVT_CALL(EnemyCreateTargetList, 32772)
|
||||||
@ -642,7 +642,7 @@ EvtScript N(summonBackup) = {
|
|||||||
EVT_CALL(GetOwnerTarget, LVar1, LVar2)
|
EVT_CALL(GetOwnerTarget, LVar1, LVar2)
|
||||||
EVT_CALL(GetOriginalActorType, LVar1, LVar2)
|
EVT_CALL(GetOriginalActorType, LVar1, LVar2)
|
||||||
EVT_IF_EQ(LVar0, LVar2)
|
EVT_IF_EQ(LVar0, LVar2)
|
||||||
EVT_CALL(SetAnimation, LVar1, 2, ANIM_JungleGuy_Anim04)
|
EVT_CALL(SetAnimation, LVar1, 2, ANIM_SpearGuy_Anim04)
|
||||||
EVT_CALL(GetIndexFromHome, LVar1, LVar3)
|
EVT_CALL(GetIndexFromHome, LVar1, LVar3)
|
||||||
EVT_IF_LT(LVarA, LVar3)
|
EVT_IF_LT(LVarA, LVar3)
|
||||||
EVT_CALL(GetActorVar, LVar1, 0, LVar4)
|
EVT_CALL(GetActorVar, LVar1, 0, LVar4)
|
||||||
@ -650,7 +650,7 @@ EvtScript N(summonBackup) = {
|
|||||||
EVT_CALL(SetActorVar, LVar1, 0, 1)
|
EVT_CALL(SetActorVar, LVar1, 0, 1)
|
||||||
EVT_CALL(SetIdleAnimations, LVar1, 2, EVT_PTR(N(idleAnimations_8021860C)))
|
EVT_CALL(SetIdleAnimations, LVar1, 2, EVT_PTR(N(idleAnimations_8021860C)))
|
||||||
EVT_CALL(SetPartEventFlags, LVar1, 2, 16)
|
EVT_CALL(SetPartEventFlags, LVar1, 2, 16)
|
||||||
EVT_CALL(SetAnimation, LVar1, 2, ANIM_JungleGuy_Anim03)
|
EVT_CALL(SetAnimation, LVar1, 2, ANIM_SpearGuy_Anim03)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -678,7 +678,7 @@ EvtScript N(summonBackup) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_SET(LVarB, LVar0)
|
EVT_SET(LVarB, LVar0)
|
||||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
EVT_CALL(SetAnimation, LVarB, 2, ANIM_JungleGuy_Anim10)
|
EVT_CALL(SetAnimation, LVarB, 2, ANIM_SpearGuy_Anim10)
|
||||||
EVT_CALL(SetGoalToIndex, LVarB, LVarA)
|
EVT_CALL(SetGoalToIndex, LVarB, LVarA)
|
||||||
EVT_CALL(GetGoalPos, LVarB, LVar0, LVar1, LVar2)
|
EVT_CALL(GetGoalPos, LVarB, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar0, 220)
|
EVT_ADD(LVar0, 220)
|
||||||
@ -701,12 +701,12 @@ EvtScript N(summonBackup) = {
|
|||||||
EVT_CALL(GetActorPos, LVarB, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, LVarB, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar1, 15)
|
EVT_ADD(LVar1, 15)
|
||||||
EVT_CALL(PlayEffect, EFFECT_SPARKLES, 0, LVar0, LVar1, LVar2, 30, 0, 0, 0, 0, 0, 0, 0, 0)
|
EVT_CALL(PlayEffect, EFFECT_SPARKLES, 0, LVar0, LVar1, LVar2, 30, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||||
EVT_CALL(SetAnimation, LVarB, 2, ANIM_JungleGuy_Anim0E)
|
EVT_CALL(SetAnimation, LVarB, 2, ANIM_SpearGuy_Anim0E)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_IF_EQ(LocalFlag(0), 0)
|
EVT_IF_EQ(LocalFlag(0), 0)
|
||||||
EVT_CALL(SetAnimation, LVarB, 2, ANIM_JungleGuy_Anim04)
|
EVT_CALL(SetAnimation, LVarB, 2, ANIM_SpearGuy_Anim04)
|
||||||
EVT_ELSE
|
EVT_ELSE
|
||||||
EVT_CALL(SetAnimation, LVarB, 2, ANIM_JungleGuy_Anim03)
|
EVT_CALL(SetAnimation, LVarB, 2, ANIM_SpearGuy_Anim03)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(GetActorPos, LVarB, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, LVarB, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(ForceHomePos, LVarB, LVar0, LVar1, LVar2)
|
EVT_CALL(ForceHomePos, LVarB, LVar0, LVar1, LVar2)
|
||||||
@ -740,9 +740,9 @@ EvtScript N(becomeShyGuy) = {
|
|||||||
EVT_WAIT(10)
|
EVT_WAIT(10)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(SetHomePos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(SetHomePos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim13)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim13)
|
||||||
EVT_WAIT(5)
|
EVT_WAIT(5)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim18)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim18)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 10)
|
EVT_SUB(LVar0, 10)
|
||||||
EVT_ADD(LVar1, 15)
|
EVT_ADD(LVar1, 15)
|
||||||
@ -791,13 +791,13 @@ EvtScript N(spearThrow) = {
|
|||||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim06)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim06)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar0, 200)
|
EVT_ADD(LVar0, 200)
|
||||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0))
|
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0))
|
||||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim15)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim15)
|
||||||
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||||
EVT_SUB(LVar0, 100)
|
EVT_SUB(LVar0, 100)
|
||||||
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
|
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
|
||||||
@ -820,10 +820,10 @@ EvtScript N(spearThrow) = {
|
|||||||
EVT_CASE_OR_EQ(HIT_RESULT_MISS)
|
EVT_CASE_OR_EQ(HIT_RESULT_MISS)
|
||||||
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
|
EVT_CASE_OR_EQ(HIT_RESULT_LUCKY)
|
||||||
EVT_SET(LVarA, LVar0)
|
EVT_SET(LVarA, LVar0)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim11)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim11)
|
||||||
EVT_WAIT(5)
|
EVT_WAIT(5)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim17)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim17)
|
||||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
|
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 20)
|
EVT_SUB(LVar0, 20)
|
||||||
@ -832,7 +832,7 @@ EvtScript N(spearThrow) = {
|
|||||||
EVT_SUB(LVar0, 10)
|
EVT_SUB(LVar0, 10)
|
||||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim12)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim12)
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(SetPartPos, ACTOR_SELF, 3, LVar0, 20, LVar2)
|
EVT_CALL(SetPartPos, ACTOR_SELF, 3, LVar0, 20, LVar2)
|
||||||
@ -873,10 +873,10 @@ EvtScript N(spearThrow) = {
|
|||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END_CASE_GROUP
|
EVT_END_CASE_GROUP
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim11)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim11)
|
||||||
EVT_WAIT(5)
|
EVT_WAIT(5)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim17)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim17)
|
||||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
|
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5))
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 20)
|
EVT_SUB(LVar0, 20)
|
||||||
@ -885,7 +885,7 @@ EvtScript N(spearThrow) = {
|
|||||||
EVT_SUB(LVar0, 10)
|
EVT_SUB(LVar0, 10)
|
||||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_JungleGuy_Anim12)
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, ANIM_SpearGuy_Anim12)
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(SetPartPos, ACTOR_SELF, 3, LVar0, 20, LVar2)
|
EVT_CALL(SetPartPos, ACTOR_SELF, 3, LVar0, 20, LVar2)
|
||||||
|
@ -213,7 +213,7 @@ EvtScript N(8022C6D4) = {
|
|||||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_263)
|
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_263)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar1, 30)
|
EVT_ADD(LVar1, 30)
|
||||||
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 30, 2, LVar0, LVar1, LVar2, 5)
|
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 30, EMOTER_POS, LVar0, LVar1, LVar2, 5)
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
|
@ -144,7 +144,7 @@ EvtScript N(8022A750) = {
|
|||||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_263)
|
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_263)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar1, 30)
|
EVT_ADD(LVar1, 30)
|
||||||
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 30, 2, LVar0, LVar1, LVar2, 5)
|
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 30, EMOTER_POS, LVar0, LVar1, LVar2, 5)
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
|
@ -130,7 +130,7 @@ EvtScript N(80225F7C) = {
|
|||||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_263)
|
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_263)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar1, 30)
|
EVT_ADD(LVar1, 30)
|
||||||
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 30, 2, LVar0, LVar1, LVar2, 5)
|
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 30, EMOTER_POS, LVar0, LVar1, LVar2, 5)
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
|
@ -124,7 +124,7 @@ EvtScript N(80228084) = {
|
|||||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_263)
|
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_263)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar1, 30)
|
EVT_ADD(LVar1, 30)
|
||||||
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 30, 2, LVar0, LVar1, LVar2, 5)
|
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 30, EMOTER_POS, LVar0, LVar1, LVar2, 5)
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
|
@ -5,62 +5,28 @@
|
|||||||
#define NAMESPACE b_area_tik_tik_05
|
#define NAMESPACE b_area_tik_tik_05
|
||||||
|
|
||||||
#include "world/common/atomic/TexturePan.inc.c"
|
#include "world/common/atomic/TexturePan.inc.c"
|
||||||
|
#include "world/common/atomic/TexturePan.data.inc.c"
|
||||||
EvtScript N(80233540) = {
|
|
||||||
EVT_SET_GROUP(0)
|
|
||||||
EVT_IF_EQ(LVar5, 1)
|
|
||||||
EVT_IF_EQ(LVar6, 1)
|
|
||||||
EVT_IF_EQ(LVar7, 1)
|
|
||||||
EVT_IF_EQ(LVar8, 1)
|
|
||||||
EVT_CALL(N(UpdateTexturePanSmooth))
|
|
||||||
EVT_RETURN
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_CALL(N(UpdateTexturePanStepped))
|
|
||||||
EVT_RETURN
|
|
||||||
EVT_END
|
|
||||||
};
|
|
||||||
|
|
||||||
EvtScript N(beforeBattle) = {
|
EvtScript N(beforeBattle) = {
|
||||||
EVT_CALL(SetSpriteShading, SHADING_NONE)
|
EVT_CALL(SetSpriteShading, SHADING_NONE)
|
||||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||||
EVT_CALL(SetTexPanner, 15, TEX_PANNER_1)
|
EVT_CALL(SetTexPanner, MODEL_taki1, TEX_PANNER_1)
|
||||||
EVT_CALL(EnableTexPanning, 15, 1)
|
EVT_CALL(EnableTexPanning, MODEL_taki1, TRUE)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_SET(LVar0, 1)
|
TEX_PAN_PARAMS_ID(TEX_PANNER_1)
|
||||||
EVT_SET(LVar1, 0)
|
TEX_PAN_PARAMS_STEP( 0, -2700, 0, -3000)
|
||||||
EVT_SET(LVar2, -2700)
|
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
|
||||||
EVT_SET(LVar3, 0)
|
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
|
||||||
EVT_SET(LVar4, -3000)
|
EVT_EXEC(N(EVS_UpdateTexturePan))
|
||||||
EVT_SET(LVar5, 1)
|
|
||||||
EVT_SET(LVar6, 1)
|
|
||||||
EVT_SET(LVar7, 1)
|
|
||||||
EVT_SET(LVar8, 1)
|
|
||||||
EVT_SET(LVar9, 0)
|
|
||||||
EVT_SET(LVarA, 0)
|
|
||||||
EVT_SET(LVarB, 0)
|
|
||||||
EVT_SET(LVarC, 0)
|
|
||||||
EVT_EXEC(N(80233540))
|
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_CALL(SetTexPanner, 16, TEX_PANNER_2)
|
EVT_CALL(SetTexPanner, MODEL_taki2, TEX_PANNER_2)
|
||||||
EVT_CALL(EnableTexPanning, 16, 1)
|
EVT_CALL(EnableTexPanning, MODEL_taki2, TRUE)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_SET(LVar0, 2)
|
TEX_PAN_PARAMS_ID(TEX_PANNER_2)
|
||||||
EVT_SET(LVar1, 50)
|
TEX_PAN_PARAMS_STEP( 50, -200, 110, -500)
|
||||||
EVT_SET(LVar2, -200)
|
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
|
||||||
EVT_SET(LVar3, 110)
|
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
|
||||||
EVT_SET(LVar4, -500)
|
EVT_EXEC(N(EVS_UpdateTexturePan))
|
||||||
EVT_SET(LVar5, 1)
|
|
||||||
EVT_SET(LVar6, 1)
|
|
||||||
EVT_SET(LVar7, 1)
|
|
||||||
EVT_SET(LVar8, 1)
|
|
||||||
EVT_SET(LVar9, 0)
|
|
||||||
EVT_SET(LVarA, 0)
|
|
||||||
EVT_SET(LVarB, 0)
|
|
||||||
EVT_SET(LVarC, 0)
|
|
||||||
EVT_EXEC(N(80233540))
|
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
|
@ -5,62 +5,28 @@
|
|||||||
#define NAMESPACE b_area_tik2_tik_05
|
#define NAMESPACE b_area_tik2_tik_05
|
||||||
|
|
||||||
#include "world/common/atomic/TexturePan.inc.c"
|
#include "world/common/atomic/TexturePan.inc.c"
|
||||||
|
#include "world/common/atomic/TexturePan.data.inc.c"
|
||||||
EvtScript N(80233540) = {
|
|
||||||
EVT_SET_GROUP(0)
|
|
||||||
EVT_IF_EQ(LVar5, 1)
|
|
||||||
EVT_IF_EQ(LVar6, 1)
|
|
||||||
EVT_IF_EQ(LVar7, 1)
|
|
||||||
EVT_IF_EQ(LVar8, 1)
|
|
||||||
EVT_CALL(N(UpdateTexturePanSmooth))
|
|
||||||
EVT_RETURN
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_CALL(N(UpdateTexturePanStepped))
|
|
||||||
EVT_RETURN
|
|
||||||
EVT_END
|
|
||||||
};
|
|
||||||
|
|
||||||
EvtScript N(beforeBattle) = {
|
EvtScript N(beforeBattle) = {
|
||||||
EVT_CALL(SetSpriteShading, SHADING_NONE)
|
EVT_CALL(SetSpriteShading, SHADING_NONE)
|
||||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||||
EVT_CALL(SetTexPanner, 15, TEX_PANNER_1)
|
EVT_CALL(SetTexPanner, MODEL_taki1, TEX_PANNER_1)
|
||||||
EVT_CALL(EnableTexPanning, 15, 1)
|
EVT_CALL(EnableTexPanning, MODEL_taki1, TRUE)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_SET(LVar0, 1)
|
TEX_PAN_PARAMS_ID(TEX_PANNER_1)
|
||||||
EVT_SET(LVar1, 0)
|
TEX_PAN_PARAMS_STEP( 0, -2700, 0, -3000)
|
||||||
EVT_SET(LVar2, -2700)
|
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
|
||||||
EVT_SET(LVar3, 0)
|
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
|
||||||
EVT_SET(LVar4, -3000)
|
EVT_EXEC(N(EVS_UpdateTexturePan))
|
||||||
EVT_SET(LVar5, 1)
|
|
||||||
EVT_SET(LVar6, 1)
|
|
||||||
EVT_SET(LVar7, 1)
|
|
||||||
EVT_SET(LVar8, 1)
|
|
||||||
EVT_SET(LVar9, 0)
|
|
||||||
EVT_SET(LVarA, 0)
|
|
||||||
EVT_SET(LVarB, 0)
|
|
||||||
EVT_SET(LVarC, 0)
|
|
||||||
EVT_EXEC(N(80233540))
|
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_CALL(SetTexPanner, 16, TEX_PANNER_2)
|
EVT_CALL(SetTexPanner, MODEL_taki2, TEX_PANNER_2)
|
||||||
EVT_CALL(EnableTexPanning, 16, 1)
|
EVT_CALL(EnableTexPanning, MODEL_taki2, TRUE)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_SET(LVar0, 2)
|
TEX_PAN_PARAMS_ID(TEX_PANNER_2)
|
||||||
EVT_SET(LVar1, 50)
|
TEX_PAN_PARAMS_STEP( 50, -200, 110, -500)
|
||||||
EVT_SET(LVar2, -200)
|
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
|
||||||
EVT_SET(LVar3, 110)
|
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
|
||||||
EVT_SET(LVar4, -500)
|
EVT_EXEC(N(EVS_UpdateTexturePan))
|
||||||
EVT_SET(LVar5, 1)
|
|
||||||
EVT_SET(LVar6, 1)
|
|
||||||
EVT_SET(LVar7, 1)
|
|
||||||
EVT_SET(LVar8, 1)
|
|
||||||
EVT_SET(LVar9, 0)
|
|
||||||
EVT_SET(LVarA, 0)
|
|
||||||
EVT_SET(LVarB, 0)
|
|
||||||
EVT_SET(LVarC, 0)
|
|
||||||
EVT_EXEC(N(80233540))
|
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
|
@ -5,62 +5,28 @@
|
|||||||
#define NAMESPACE b_area_tik3_tik_05
|
#define NAMESPACE b_area_tik3_tik_05
|
||||||
|
|
||||||
#include "world/common/atomic/TexturePan.inc.c"
|
#include "world/common/atomic/TexturePan.inc.c"
|
||||||
|
#include "world/common/atomic/TexturePan.data.inc.c"
|
||||||
EvtScript N(80233540) = {
|
|
||||||
EVT_SET_GROUP(0)
|
|
||||||
EVT_IF_EQ(LVar5, 1)
|
|
||||||
EVT_IF_EQ(LVar6, 1)
|
|
||||||
EVT_IF_EQ(LVar7, 1)
|
|
||||||
EVT_IF_EQ(LVar8, 1)
|
|
||||||
EVT_CALL(N(UpdateTexturePanSmooth))
|
|
||||||
EVT_RETURN
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_CALL(N(UpdateTexturePanStepped))
|
|
||||||
EVT_RETURN
|
|
||||||
EVT_END
|
|
||||||
};
|
|
||||||
|
|
||||||
EvtScript N(beforeBattle) = {
|
EvtScript N(beforeBattle) = {
|
||||||
EVT_CALL(SetSpriteShading, SHADING_NONE)
|
EVT_CALL(SetSpriteShading, SHADING_NONE)
|
||||||
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||||
EVT_CALL(SetTexPanner, 15, TEX_PANNER_1)
|
EVT_CALL(SetTexPanner, MODEL_taki1, TEX_PANNER_1)
|
||||||
EVT_CALL(EnableTexPanning, 15, 1)
|
EVT_CALL(EnableTexPanning, MODEL_taki1, TRUE)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_SET(LVar0, 1)
|
TEX_PAN_PARAMS_ID(TEX_PANNER_1)
|
||||||
EVT_SET(LVar1, 0)
|
TEX_PAN_PARAMS_STEP( 0, -2700, 0, -3000)
|
||||||
EVT_SET(LVar2, -2700)
|
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
|
||||||
EVT_SET(LVar3, 0)
|
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
|
||||||
EVT_SET(LVar4, -3000)
|
EVT_EXEC(N(EVS_UpdateTexturePan))
|
||||||
EVT_SET(LVar5, 1)
|
|
||||||
EVT_SET(LVar6, 1)
|
|
||||||
EVT_SET(LVar7, 1)
|
|
||||||
EVT_SET(LVar8, 1)
|
|
||||||
EVT_SET(LVar9, 0)
|
|
||||||
EVT_SET(LVarA, 0)
|
|
||||||
EVT_SET(LVarB, 0)
|
|
||||||
EVT_SET(LVarC, 0)
|
|
||||||
EVT_EXEC(N(80233540))
|
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_CALL(SetTexPanner, 16, TEX_PANNER_2)
|
EVT_CALL(SetTexPanner, MODEL_taki2, TEX_PANNER_2)
|
||||||
EVT_CALL(EnableTexPanning, 16, 1)
|
EVT_CALL(EnableTexPanning, MODEL_taki2, TRUE)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_SET(LVar0, 2)
|
TEX_PAN_PARAMS_ID(TEX_PANNER_2)
|
||||||
EVT_SET(LVar1, 50)
|
TEX_PAN_PARAMS_STEP( 50, -200, 110, -500)
|
||||||
EVT_SET(LVar2, -200)
|
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
|
||||||
EVT_SET(LVar3, 110)
|
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
|
||||||
EVT_SET(LVar4, -500)
|
EVT_EXEC(N(EVS_UpdateTexturePan))
|
||||||
EVT_SET(LVar5, 1)
|
|
||||||
EVT_SET(LVar6, 1)
|
|
||||||
EVT_SET(LVar7, 1)
|
|
||||||
EVT_SET(LVar8, 1)
|
|
||||||
EVT_SET(LVar9, 0)
|
|
||||||
EVT_SET(LVarA, 0)
|
|
||||||
EVT_SET(LVarB, 0)
|
|
||||||
EVT_SET(LVarC, 0)
|
|
||||||
EVT_EXEC(N(80233540))
|
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
|
@ -313,7 +313,7 @@ EvtScript N(main) = {
|
|||||||
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_Mario_10002)
|
EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_Mario_10002)
|
||||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar1, 32)
|
EVT_ADD(LVar1, 32)
|
||||||
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 20, 2, LVar0, LVar1, LVar2, 10)
|
EVT_CALL(ShowEmote, 0, EMOTE_QUESTION, -45, 20, EMOTER_POS, LVar0, LVar1, LVar2, 10)
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
EVT_CALL(SetActorYaw, ACTOR_PLAYER, 30)
|
||||||
EVT_WAIT(1)
|
EVT_WAIT(1)
|
||||||
|
@ -485,7 +485,7 @@ void update_encounters_neutral(void) {
|
|||||||
s32 cond;
|
s32 cond;
|
||||||
s32 cond2;
|
s32 cond2;
|
||||||
s32 firstStrikeType;
|
s32 firstStrikeType;
|
||||||
s32 aiPaused;
|
s32 suspendTime;
|
||||||
|
|
||||||
Enemy* enemy;
|
Enemy* enemy;
|
||||||
Enemy* currentEnemy;
|
Enemy* currentEnemy;
|
||||||
@ -548,15 +548,15 @@ void update_encounters_neutral(void) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
npc = get_npc_unsafe(enemy->npcID);
|
npc = get_npc_unsafe(enemy->npcID);
|
||||||
if (enemy->aiPaused != 0) {
|
if (enemy->aiSuspendTime != 0) {
|
||||||
if (!(gOverrideFlags & GLOBAL_OVERRIDES_40)) {
|
if (!(gOverrideFlags & GLOBAL_OVERRIDES_40)) {
|
||||||
enemy->aiPaused--;
|
enemy->aiSuspendTime--;
|
||||||
aiPaused = enemy->aiPaused;
|
suspendTime = enemy->aiSuspendTime;
|
||||||
} else {
|
} else {
|
||||||
aiPaused = 0;
|
suspendTime = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aiPaused & 1) {
|
if (suspendTime & 1) {
|
||||||
npc->flags |= NPC_FLAG_80000000;
|
npc->flags |= NPC_FLAG_80000000;
|
||||||
enemy->flags |= ENEMY_FLAG_80000000;
|
enemy->flags |= ENEMY_FLAG_80000000;
|
||||||
} else {
|
} else {
|
||||||
@ -1865,7 +1865,7 @@ void update_encounters_post_battle(void) {
|
|||||||
enemy = currentEncounter->currentEnemy;
|
enemy = currentEncounter->currentEnemy;
|
||||||
encounter = currentEncounter->currentEncounter;
|
encounter = currentEncounter->currentEncounter;
|
||||||
if (!(enemy->flags & ENEMY_FLAG_40000)) {
|
if (!(enemy->flags & ENEMY_FLAG_40000)) {
|
||||||
enemy->aiPaused = 45;
|
enemy->aiSuspendTime = 45;
|
||||||
playerStatus->blinkTimer = 45;
|
playerStatus->blinkTimer = 45;
|
||||||
for (j = 0; j < encounter->count; j++) {
|
for (j = 0; j < encounter->count; j++) {
|
||||||
enemy = encounter->enemy[j];
|
enemy = encounter->enemy[j];
|
||||||
@ -1878,7 +1878,7 @@ void update_encounters_post_battle(void) {
|
|||||||
if (enemy->flags & ENEMY_FLAG_ENABLE_HIT_SCRIPT) {
|
if (enemy->flags & ENEMY_FLAG_ENABLE_HIT_SCRIPT) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
enemy->aiPaused = 45;
|
enemy->aiSuspendTime = 45;
|
||||||
playerStatus->blinkTimer = 45;
|
playerStatus->blinkTimer = 45;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2116,7 +2116,7 @@ void update_encounters_post_battle(void) {
|
|||||||
enemy = currentEncounter->currentEnemy;
|
enemy = currentEncounter->currentEnemy;
|
||||||
if (!(enemy->flags & ENEMY_FLAG_4)) {
|
if (!(enemy->flags & ENEMY_FLAG_4)) {
|
||||||
encounter = currentEncounter->currentEncounter;
|
encounter = currentEncounter->currentEncounter;
|
||||||
enemy->aiPaused = 45;
|
enemy->aiSuspendTime = 45;
|
||||||
playerStatus->blinkTimer = 45;
|
playerStatus->blinkTimer = 45;
|
||||||
for (j = 0; j < encounter->count; j++) {
|
for (j = 0; j < encounter->count; j++) {
|
||||||
enemy = encounter->enemy[j];
|
enemy = encounter->enemy[j];
|
||||||
@ -2129,7 +2129,7 @@ void update_encounters_post_battle(void) {
|
|||||||
if (enemy->flags & ENEMY_FLAG_ENABLE_HIT_SCRIPT) {
|
if (enemy->flags & ENEMY_FLAG_ENABLE_HIT_SCRIPT) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
enemy->aiPaused = 45;
|
enemy->aiSuspendTime = 45;
|
||||||
playerStatus->blinkTimer = 45;
|
playerStatus->blinkTimer = 45;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2158,8 +2158,8 @@ void update_encounters_post_battle(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
npc = get_npc_unsafe(enemy->npcID);
|
npc = get_npc_unsafe(enemy->npcID);
|
||||||
if (enemy->aiPaused != 0) {
|
if (enemy->aiSuspendTime != 0) {
|
||||||
if (enemy->aiPaused & 1) {
|
if (enemy->aiSuspendTime & 1) {
|
||||||
npc->flags |= NPC_FLAG_80000000;
|
npc->flags |= NPC_FLAG_80000000;
|
||||||
enemy->flags |= ENEMY_FLAG_80000000;
|
enemy->flags |= ENEMY_FLAG_80000000;
|
||||||
} else {
|
} else {
|
||||||
@ -2492,7 +2492,7 @@ void create_encounters(void) {
|
|||||||
|
|
||||||
enemy->aiFlags = npcData->aiFlags;
|
enemy->aiFlags = npcData->aiFlags;
|
||||||
enemy->unk_DC = 0;
|
enemy->unk_DC = 0;
|
||||||
enemy->aiPaused = 0;
|
enemy->aiSuspendTime = 0;
|
||||||
enemy->unk_B8 = (EvtScript*)npcSettings->unk_24; // ??
|
enemy->unk_B8 = (EvtScript*)npcSettings->unk_24; // ??
|
||||||
enemy->unk_BC = NULL;
|
enemy->unk_BC = NULL;
|
||||||
enemy->unk_C0 = 0;
|
enemy->unk_C0 = 0;
|
||||||
|
@ -806,7 +806,7 @@ ApiStatus OnPlayerFled(Evt* script, s32 isInitialCall) {
|
|||||||
Npc* npc = get_npc_unsafe(enemy->npcID);
|
Npc* npc = get_npc_unsafe(enemy->npcID);
|
||||||
s32 skipReaction = evt_get_variable(script, *script->ptrReadPos);
|
s32 skipReaction = evt_get_variable(script, *script->ptrReadPos);
|
||||||
|
|
||||||
enemy->aiFlags |= ENEMY_AI_FLAG_4;
|
enemy->aiFlags |= ENEMY_AI_FLAG_SUSPEND;
|
||||||
|
|
||||||
if (!skipReaction) {
|
if (!skipReaction) {
|
||||||
s32 unk;
|
s32 unk;
|
||||||
|
186
src/state_demo.c
186
src/state_demo.c
@ -4,36 +4,140 @@
|
|||||||
#include "sprite.h"
|
#include "sprite.h"
|
||||||
|
|
||||||
typedef struct DemoSceneData {
|
typedef struct DemoSceneData {
|
||||||
/* 0x0 */ s16 unk_0;
|
/* 0x0 */ s16 sceneType;
|
||||||
/* 0x2 */ u16 entryID;
|
/* 0x2 */ u16 index; // entryID for WORLD, battle index for BATTLE
|
||||||
/* 0x4 */ char unk_4;
|
/* 0x4 */ char unk_4;
|
||||||
/* 0x5 */ s8 partnerID;
|
/* 0x5 */ s8 partnerID;
|
||||||
/* 0x6 */ s8 unk_6;
|
/* 0x6 */ s8 storyProgress;
|
||||||
/* 0x7 */ char unk_7;
|
/* 0x7 */ char unk_7;
|
||||||
/* 0x8 */ char* mapName;
|
/* 0x8 */ char* mapName;
|
||||||
} DemoSceneData; // size = 0xC;
|
} DemoSceneData; // size = 0xC;
|
||||||
|
|
||||||
DemoSceneData D_80077AE0[20] = {
|
enum DemoSceneType {
|
||||||
{ .unk_0 = 0, .entryID = 2, .unk_4 = 0, .partnerID = PARTNER_GOOMBARIO, .unk_6 = 0x9D, .mapName = "nok_12" },
|
DEMO_SCENE_WORLD = 0,
|
||||||
{ .unk_0 = 2, .entryID = 0, .unk_4 = 0, .partnerID = PARTNER_NONE, .unk_6 = 0 },
|
DEMO_SCENE_PEACH = 1,
|
||||||
{ .unk_0 = 0, .entryID = 5, .unk_4 = 0, .partnerID = PARTNER_PARAKARRY, .unk_6 = 0x9D, .mapName = "isk_04" },
|
DEMO_SCENE_BATTLE = 2,
|
||||||
{ .unk_0 = 0, .entryID = 2, .unk_4 = 0, .partnerID = PARTNER_KOOPER, .unk_6 = 0x9D, .mapName = "tik_03" },
|
DEMO_SCENE_DONE = 3,
|
||||||
{ .unk_0 = 0, .entryID = 2, .unk_4 = 0, .partnerID = PARTNER_PARAKARRY, .unk_6 = 0xB3, .mapName = "trd_09" },
|
DEMO_SCENE_EXIT = 4,
|
||||||
{ .unk_0 = 0, .entryID = 4, .unk_4 = 0, .partnerID = PARTNER_SUSHIE, .unk_6 = 0x9D, .mapName = "jan_04" },
|
};
|
||||||
{ .unk_0 = 2, .entryID = 1, .unk_4 = 0, .partnerID = PARTNER_NONE, .unk_6 = 0x00 },
|
|
||||||
{ .unk_0 = 0, .entryID = 6, .unk_4 = 0, .partnerID = PARTNER_BOMBETTE, .unk_6 = 0x9D, .mapName = "mac_00" },
|
DemoSceneData DemoScenes[] = {
|
||||||
{ .unk_0 = 0, .entryID = 2, .unk_4 = 0, .partnerID = PARTNER_KOOPER, .unk_6 = 0x1B, .mapName = "kzn_02" },
|
{
|
||||||
{ .unk_0 = 2, .entryID = 2, .unk_4 = 0, .partnerID = PARTNER_NONE, .unk_6 = 0x00 },
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
{ .unk_0 = 0, .entryID = 3, .unk_4 = 0, .partnerID = PARTNER_BOMBETTE, .unk_6 = 0x9D, .mapName = "mac_03" },
|
.mapName = "nok_12",
|
||||||
{ .unk_0 = 0, .entryID = 4, .unk_4 = 0, .partnerID = PARTNER_GOOMBARIO, .unk_6 = 0x9D, .mapName = "nok_02" },
|
.index = nok_12_ENTRY_2,
|
||||||
{ .unk_0 = 2, .entryID = 3, .unk_4 = 0, .partnerID = PARTNER_NONE, .unk_6 = 0x00 },
|
.partnerID = PARTNER_GOOMBARIO,
|
||||||
{ .unk_0 = 1, .entryID = 8, .unk_4 = 0, .partnerID = PARTNER_TWINK, .unk_6 = 0x26, .mapName = "kkj_11" },
|
.storyProgress = STORY_CH1_KNOCKED_SWITCH_FROM_TREE
|
||||||
{ .unk_0 = 0, .entryID = 2, .unk_4 = 0, .partnerID = PARTNER_BOW, .unk_6 = 0xE8, .mapName = "arn_08" },
|
},
|
||||||
{ .unk_0 = 2, .entryID = 4, .unk_4 = 0, .partnerID = PARTNER_NONE, .unk_6 = 0x00 },
|
{
|
||||||
{ .unk_0 = 0, .entryID = 3, .unk_4 = 0, .partnerID = PARTNER_GOOMBARIO, .unk_6 = 0x9D, .mapName = "nok_12" },
|
.sceneType = DEMO_SCENE_BATTLE,
|
||||||
{ .unk_0 = 1, .entryID = 3, .unk_4 = 0, .partnerID = PARTNER_NONE, .unk_6 = 0x9D, .mapName = "kkj_26" },
|
.index = 0
|
||||||
{ .unk_0 = 3, .entryID = 0, .unk_4 = 0, .partnerID = PARTNER_NONE, .unk_6 = 0x00, .mapName = "end" },
|
},
|
||||||
{ .unk_0 = 0, .entryID = 0, .unk_4 = 0, .partnerID = PARTNER_NONE, .unk_6 = 0x00, },
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "isk_04",
|
||||||
|
.index = isk_04_ENTRY_5,
|
||||||
|
.partnerID = PARTNER_PARAKARRY,
|
||||||
|
.storyProgress = STORY_CH1_KNOCKED_SWITCH_FROM_TREE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "tik_03",
|
||||||
|
.index = tik_03_ENTRY_2,
|
||||||
|
.partnerID = PARTNER_KOOPER,
|
||||||
|
.storyProgress = STORY_CH1_KNOCKED_SWITCH_FROM_TREE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "trd_09",
|
||||||
|
.index = trd_09_ENTRY_2,
|
||||||
|
.partnerID = PARTNER_PARAKARRY,
|
||||||
|
.storyProgress = STORY_CH1_STAR_SPIRIT_RESCUED
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "jan_04",
|
||||||
|
.index = jan_04_ENTRY_4,
|
||||||
|
.partnerID = PARTNER_SUSHIE,
|
||||||
|
.storyProgress = STORY_CH1_KNOCKED_SWITCH_FROM_TREE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_BATTLE,
|
||||||
|
.index = 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "mac_00",
|
||||||
|
.index = mac_00_ENTRY_6,
|
||||||
|
.partnerID = PARTNER_BOMBETTE,
|
||||||
|
.storyProgress = STORY_CH1_KNOCKED_SWITCH_FROM_TREE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "kzn_02",
|
||||||
|
.index = kzn_02_ENTRY_2,
|
||||||
|
.partnerID = PARTNER_KOOPER,
|
||||||
|
.storyProgress = STORY_CH5_LAVA_STREAM_BLOCKED
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_BATTLE,
|
||||||
|
.index = 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "mac_03",
|
||||||
|
.index = mac_03_ENTRY_3,
|
||||||
|
.partnerID = PARTNER_BOMBETTE,
|
||||||
|
.storyProgress = STORY_CH1_KNOCKED_SWITCH_FROM_TREE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "nok_02" ,
|
||||||
|
.index = nok_02_ENTRY_4,
|
||||||
|
.partnerID = PARTNER_GOOMBARIO,
|
||||||
|
.storyProgress = STORY_CH1_KNOCKED_SWITCH_FROM_TREE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_BATTLE,
|
||||||
|
.index = 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_PEACH,
|
||||||
|
.mapName = "kkj_11",
|
||||||
|
.index = kkj_11_ENTRY_8,
|
||||||
|
.partnerID = PARTNER_TWINK,
|
||||||
|
.storyProgress = STORY_CH5_BEGAN_PEACH_MISSION
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "arn_08",
|
||||||
|
.index = arn_08_ENTRY_2,
|
||||||
|
.partnerID = PARTNER_BOW,
|
||||||
|
.storyProgress = STORY_CH3_UNLOCKED_WINDY_MILL
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_BATTLE,
|
||||||
|
.index = 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_WORLD,
|
||||||
|
.mapName = "nok_12",
|
||||||
|
.index = nok_12_ENTRY_3,
|
||||||
|
.partnerID = PARTNER_GOOMBARIO,
|
||||||
|
.storyProgress = STORY_CH1_KNOCKED_SWITCH_FROM_TREE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_PEACH,
|
||||||
|
.mapName = "kkj_26",
|
||||||
|
.index = kkj_26_ENTRY_3,
|
||||||
|
.partnerID = PARTNER_NONE,
|
||||||
|
.storyProgress = STORY_CH1_KNOCKED_SWITCH_FROM_TREE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.sceneType = DEMO_SCENE_DONE,
|
||||||
|
.mapName = "end"
|
||||||
|
},
|
||||||
|
{} // final entry blank
|
||||||
};
|
};
|
||||||
|
|
||||||
char versionString[] = "Prg Ver.00/12/05 16:54";
|
char versionString[] = "Prg Ver.00/12/05 16:54";
|
||||||
@ -57,20 +161,20 @@ void state_init_demo(void) {
|
|||||||
|
|
||||||
void state_step_demo(void) {
|
void state_step_demo(void) {
|
||||||
PlayerData* playerData = &gPlayerData;
|
PlayerData* playerData = &gPlayerData;
|
||||||
DemoSceneData* demoSceneData = &D_80077AE0[gGameStatusPtr->nextDemoScene];
|
DemoSceneData* demoSceneData = &DemoScenes[gGameStatusPtr->nextDemoScene];
|
||||||
s16 mode = demoSceneData->unk_0;
|
s16 mode = demoSceneData->sceneType;
|
||||||
s16 mapID;
|
s16 mapID;
|
||||||
s16 areaID;
|
s16 areaID;
|
||||||
|
|
||||||
if (gGameStatusPtr->demoState == 4) {
|
if (gGameStatusPtr->demoState == 4) {
|
||||||
mode = 3;
|
mode = DEMO_SCENE_DONE;
|
||||||
}
|
}
|
||||||
if (gGameStatusPtr->demoState == 5) {
|
if (gGameStatusPtr->demoState == 5) {
|
||||||
mode = 4;
|
mode = DEMO_SCENE_EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 3:
|
case DEMO_SCENE_DONE:
|
||||||
intro_logos_set_fade_alpha(255);
|
intro_logos_set_fade_alpha(255);
|
||||||
intro_logos_set_fade_color(224);
|
intro_logos_set_fade_color(224);
|
||||||
gGameStatusPtr->introState = INTRO_STATE_3;
|
gGameStatusPtr->introState = INTRO_STATE_3;
|
||||||
@ -78,7 +182,7 @@ void state_step_demo(void) {
|
|||||||
intro_logos_update_fade();
|
intro_logos_update_fade();
|
||||||
gGameStatusPtr->demoState = 5;
|
gGameStatusPtr->demoState = 5;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case DEMO_SCENE_EXIT:
|
||||||
if (gGameStatusPtr->introState != INTRO_STATE_0) {
|
if (gGameStatusPtr->introState != INTRO_STATE_0) {
|
||||||
gGameStatusPtr->introState--;
|
gGameStatusPtr->introState--;
|
||||||
}
|
}
|
||||||
@ -121,15 +225,15 @@ void state_step_demo(void) {
|
|||||||
set_game_mode(GAME_MODE_TITLE_SCREEN);
|
set_game_mode(GAME_MODE_TITLE_SCREEN);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
case 0:
|
case DEMO_SCENE_WORLD:
|
||||||
get_map_IDs_by_name(demoSceneData->mapName, &areaID, &mapID);
|
get_map_IDs_by_name(demoSceneData->mapName, &areaID, &mapID);
|
||||||
gGameStatusPtr->areaID = areaID;
|
gGameStatusPtr->areaID = areaID;
|
||||||
gGameStatusPtr->mapID = mapID;
|
gGameStatusPtr->mapID = mapID;
|
||||||
gGameStatusPtr->entryID = demoSceneData->entryID;
|
gGameStatusPtr->entryID = demoSceneData->index;
|
||||||
gGameStatusPtr->peachFlags = 0;
|
gGameStatusPtr->peachFlags = 0;
|
||||||
playerData->currentPartner = demoSceneData->partnerID;
|
playerData->currentPartner = demoSceneData->partnerID;
|
||||||
set_cam_viewport(0, 29, 20, -262, 177);
|
set_cam_viewport(0, 29, 20, -262, 177);
|
||||||
evt_set_variable(NULL, GB_StoryProgress, demoSceneData->unk_6);
|
evt_set_variable(NULL, GB_StoryProgress, demoSceneData->storyProgress);
|
||||||
|
|
||||||
if (gGameStatusPtr->nextDemoScene == 0) {
|
if (gGameStatusPtr->nextDemoScene == 0) {
|
||||||
set_map_transition_effect(3);
|
set_map_transition_effect(3);
|
||||||
@ -139,15 +243,15 @@ void state_step_demo(void) {
|
|||||||
|
|
||||||
set_game_mode(GAME_MODE_ENTER_DEMO_WORLD);
|
set_game_mode(GAME_MODE_ENTER_DEMO_WORLD);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case DEMO_SCENE_PEACH:
|
||||||
get_map_IDs_by_name(demoSceneData->mapName, &areaID, &mapID);
|
get_map_IDs_by_name(demoSceneData->mapName, &areaID, &mapID);
|
||||||
gGameStatusPtr->areaID = areaID;
|
gGameStatusPtr->areaID = areaID;
|
||||||
gGameStatusPtr->mapID = mapID;
|
gGameStatusPtr->mapID = mapID;
|
||||||
gGameStatusPtr->entryID = demoSceneData->entryID;
|
gGameStatusPtr->entryID = demoSceneData->index;
|
||||||
gGameStatusPtr->peachFlags = PEACH_STATUS_FLAG_IS_PEACH;
|
gGameStatusPtr->peachFlags = PEACH_STATUS_FLAG_IS_PEACH;
|
||||||
playerData->currentPartner = demoSceneData->partnerID;
|
playerData->currentPartner = demoSceneData->partnerID;
|
||||||
set_cam_viewport(0, 29, 20, -262, 177);
|
set_cam_viewport(0, 29, 20, -262, 177);
|
||||||
evt_set_variable(NULL, GB_StoryProgress, demoSceneData->unk_6);
|
evt_set_variable(NULL, GB_StoryProgress, demoSceneData->storyProgress);
|
||||||
|
|
||||||
if (gGameStatusPtr->nextDemoScene == 0) {
|
if (gGameStatusPtr->nextDemoScene == 0) {
|
||||||
set_map_transition_effect(3);
|
set_map_transition_effect(3);
|
||||||
@ -157,14 +261,14 @@ void state_step_demo(void) {
|
|||||||
|
|
||||||
set_game_mode(GAME_MODE_ENTER_DEMO_WORLD);
|
set_game_mode(GAME_MODE_ENTER_DEMO_WORLD);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case DEMO_SCENE_BATTLE:
|
||||||
load_demo_battle(demoSceneData->entryID);
|
load_demo_battle(demoSceneData->index);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
gGameStatusPtr->nextDemoScene += 1;
|
gGameStatusPtr->nextDemoScene++;
|
||||||
if (gGameStatusPtr->nextDemoScene > 0x12) {
|
if (gGameStatusPtr->nextDemoScene > ARRAY_COUNT(DemoScenes) - 2) {
|
||||||
gGameStatusPtr->nextDemoScene = 0x12;
|
gGameStatusPtr->nextDemoScene = ARRAY_COUNT(DemoScenes) - 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ EvtScript N(EVS_Scene_TubbaRaid) = {
|
|||||||
EVT_CALL(DisablePlayerInput, TRUE)
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
EVT_CALL(NpcFacePlayer, NPC_Boo_03, 1)
|
EVT_CALL(NpcFacePlayer, NPC_Boo_03, 1)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_Boo_03, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Boo_03, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_03, EMOTE_EXCLAMATION, -45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_03, EMOTE_EXCLAMATION, -45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_CALL(GetNpcPos, NPC_Boo_03, LVar0, LVar1, LVar2)
|
EVT_CALL(GetNpcPos, NPC_Boo_03, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(GetPlayerPos, LVar3, LVar4, LVar5)
|
EVT_CALL(GetPlayerPos, LVar3, LVar4, LVar5)
|
||||||
@ -356,10 +356,10 @@ EvtScript N(EVS_Scene_TubbaRaid) = {
|
|||||||
EVT_CALL(PlaySoundAtNpc, NPC_Boo_02, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Boo_02, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_Boo_03, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Boo_03, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_Boo_05, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Boo_05, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_01, EMOTE_EXCLAMATION, -45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_01, EMOTE_EXCLAMATION, -45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_02, EMOTE_EXCLAMATION, -45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_02, EMOTE_EXCLAMATION, -45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_03, EMOTE_EXCLAMATION, -45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_03, EMOTE_EXCLAMATION, -45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_05, EMOTE_EXCLAMATION, -45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_05, EMOTE_EXCLAMATION, -45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(FadeOutMusic, 0, 500)
|
EVT_CALL(FadeOutMusic, 0, 500)
|
||||||
EVT_CALL(ClearAmbientSounds, 250)
|
EVT_CALL(ClearAmbientSounds, 250)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
@ -437,8 +437,8 @@ EvtScript N(EVS_Scene_TubbaRaid) = {
|
|||||||
EVT_CALL(SetNpcPos, NPC_Boo_03, 272, 190, 214)
|
EVT_CALL(SetNpcPos, NPC_Boo_03, 272, 190, 214)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_Boo_01, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Boo_01, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_Boo_02, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Boo_02, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_01, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_01, EMOTE_EXCLAMATION, 45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_02, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_02, EMOTE_EXCLAMATION, 45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_CALL(PlaySound, SOUND_BOO_APPEAR)
|
EVT_CALL(PlaySound, SOUND_BOO_APPEAR)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
|
@ -276,12 +276,12 @@ EvtScript N(EVS_Scene_EscapeFromTubba) = {
|
|||||||
EVT_CALL(PlaySoundAtNpc, NPC_Boo_04, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Boo_04, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_Boo_05, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Boo_05, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_Boo_06, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Boo_06, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_01, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_01, EMOTE_EXCLAMATION, 45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_02, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_02, EMOTE_EXCLAMATION, 45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_03, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_03, EMOTE_EXCLAMATION, 45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_04, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_04, EMOTE_EXCLAMATION, 45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_05, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_05, EMOTE_EXCLAMATION, 45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Boo_06, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Boo_06, EMOTE_EXCLAMATION, 45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(50)
|
EVT_WAIT(50)
|
||||||
EVT_SET(LVar2, 1)
|
EVT_SET(LVar2, 1)
|
||||||
EVT_EXEC(N(EVS_CloseDoors))
|
EVT_EXEC(N(EVS_CloseDoors))
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
||||||
#define SUPER_BLOCK_GAMEFLAG GF_DGB04_SuperBlock
|
#define SUPER_BLOCK_GAMEFLAG GF_DGB04_SuperBlock
|
||||||
#include "world/common/entity/SuperBlock.inc.c"
|
#include "world/common/entity/SuperBlock.inc.c"
|
||||||
#include "world/common/entity/SuperBlock.data.inc.c"
|
|
||||||
|
|
||||||
EvtScript N(EVS_MakeEntities) = {
|
EvtScript N(EVS_MakeEntities) = {
|
||||||
EVT_MAKE_SUPER_BLOCK(500, -360, 110, 0)
|
EVT_MAKE_SUPER_BLOCK(500, -360, 110, 0)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "dgb_06.h"
|
#include "dgb_06.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
|
|
||||||
#include "world/common/atomic/Chest.inc.c"
|
#include "world/common/entity/Chest.inc.c"
|
||||||
|
|
||||||
EvtScript N(EVS_OpenChest_TubbaKey) = EVT_OPEN_CHEST_KEY(ITEM_TUBBA_CASTLE_KEY, GF_DGB06_Chest_CastleKey1);
|
EvtScript N(EVS_OpenChest_TubbaKey) = EVT_OPEN_CHEST_KEY(ITEM_TUBBA_CASTLE_KEY, GF_DGB06_Chest_CastleKey1);
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "dgb_12.h"
|
#include "dgb_12.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
|
|
||||||
#include "world/common/atomic/Chest.inc.c"
|
#include "world/common/entity/Chest.inc.c"
|
||||||
|
|
||||||
EvtScript N(EVS_Chest_Interact) = EVT_OPEN_CHEST_KEY(ITEM_TUBBA_CASTLE_KEY, GF_DGB12_Chest_CastleKey1);
|
EvtScript N(EVS_Chest_Interact) = EVT_OPEN_CHEST_KEY(ITEM_TUBBA_CASTLE_KEY, GF_DGB12_Chest_CastleKey1);
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "dgb_18.h"
|
#include "dgb_18.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
|
|
||||||
#include "world/common/atomic/Chest.inc.c"
|
#include "world/common/entity/Chest.inc.c"
|
||||||
|
|
||||||
EvtScript N(EVS_OpenChest_MysticalKey) = {
|
EvtScript N(EVS_OpenChest_MysticalKey) = {
|
||||||
EVT_SET(GF_DGB18_Chest_MysticalKey, TRUE)
|
EVT_SET(GF_DGB18_Chest_MysticalKey, TRUE)
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#include "dro_01.h"
|
#include "dro_01.h"
|
||||||
|
|
||||||
#include "world/common/entity/Pipe.inc.c"
|
#include "world/common/entity/Pipe.inc.c"
|
||||||
#include "world/common/entity/Pipe.data.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/atomic/UnkFunc27.inc.c"
|
#include "world/common/atomic/UnkFunc27.inc.c"
|
||||||
|
|
||||||
|
@ -361,7 +361,7 @@ StaticNpc N(PassiveNPCs)[] = {
|
|||||||
.settings = &N(NpcSettings_Dryite_Patrol),
|
.settings = &N(NpcSettings_Dryite_Patrol),
|
||||||
.pos = { 40.0f, 0.0f, 105.0f },
|
.pos = { 40.0f, 0.0f, 105.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Dryite_06),
|
.init = &N(EVS_NpcInit_Dryite_06),
|
||||||
.drops = DRYITE_DROPS,
|
.drops = DRYITE_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#define NAMESPACE dro_01_Entity
|
#define NAMESPACE dro_01_Entity
|
||||||
#include "world/common/entity/Pipe.inc.c"
|
#include "world/common/entity/Pipe.inc.c"
|
||||||
#include "world/common/entity/Pipe.data.inc.c"
|
|
||||||
#define NAMESPACE dro_01
|
#define NAMESPACE dro_01
|
||||||
|
|
||||||
EvtScript N(EVS_WarpPipeExit) = {
|
EvtScript N(EVS_WarpPipeExit) = {
|
||||||
|
@ -527,7 +527,7 @@ StaticNpc N(PassiveNPCs)[] = {
|
|||||||
.id = NPC_ChuckQuizmo,
|
.id = NPC_ChuckQuizmo,
|
||||||
.settings = &N(NpcSettings_ChuckQuizmo),
|
.settings = &N(NpcSettings_ChuckQuizmo),
|
||||||
.pos = { -335.0f, 0.0f, 90.0f },
|
.pos = { -335.0f, 0.0f, 90.0f },
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.initVarCount = 1,
|
.initVarCount = 1,
|
||||||
.initVar = { .bytes = { 0, QUIZ_AREA_DRO, QUIZ_COUNT_DRO, QUIZ_MAP_DRO_02 } },
|
.initVar = { .bytes = { 0, QUIZ_AREA_DRO, QUIZ_COUNT_DRO, QUIZ_MAP_DRO_02 } },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
#include "sprite/npc/TuffPuff.h"
|
#include "sprite/npc/TuffPuff.h"
|
||||||
#include "sprite/npc/GourmetGuy.h"
|
#include "sprite/npc/GourmetGuy.h"
|
||||||
|
|
||||||
#include "sprite/npc/RafaelRaven.h"
|
#include "sprite/npc/RaphaelRaven.h"
|
||||||
#include "sprite/npc/LavaPiranha.h"
|
#include "sprite/npc/LavaPiranha.h"
|
||||||
#include "sprite/npc/ParadeYoshi.h"
|
#include "sprite/npc/ParadeYoshi.h"
|
||||||
#include "sprite/npc/YoshiKid.h"
|
#include "sprite/npc/YoshiKid.h"
|
||||||
@ -109,7 +109,7 @@ enum {
|
|||||||
NPC_Yoshi3 = 59,
|
NPC_Yoshi3 = 59,
|
||||||
NPC_Yoshi4 = 60,
|
NPC_Yoshi4 = 60,
|
||||||
NPC_YoshiChief = 61,
|
NPC_YoshiChief = 61,
|
||||||
NPC_RafaelRaven = 62,
|
NPC_RaphaelRaven = 62,
|
||||||
NPC_LavaPiranha = 63,
|
NPC_LavaPiranha = 63,
|
||||||
NPC_YoshiKidGreen = 64,
|
NPC_YoshiKidGreen = 64,
|
||||||
NPC_YoshiKidBlue = 65,
|
NPC_YoshiKidBlue = 65,
|
||||||
|
@ -253,8 +253,8 @@ s32 N(ExtraAnims_GoombaKing)[] = {
|
|||||||
-1
|
-1
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 N(ExtraAnims_RafaelRaven)[] = {
|
s32 N(ExtraAnims_RaphaelRaven)[] = {
|
||||||
ANIM_RafaelRaven_IdleNoFeet,
|
ANIM_RaphaelRaven_IdleNoFeet,
|
||||||
-1
|
-1
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -633,9 +633,9 @@ ParadeNpcInfo N(ParadeNpcsTable)[] = {
|
|||||||
.pos = { 232.0f, 50.0f, 25.0f },
|
.pos = { 232.0f, 50.0f, 25.0f },
|
||||||
.yaw = 270.0f
|
.yaw = 270.0f
|
||||||
},
|
},
|
||||||
[NPC_RafaelRaven] {
|
[NPC_RaphaelRaven] {
|
||||||
.initialAnim = ANIM_RafaelRaven_IdleNoFeet,
|
.initialAnim = ANIM_RaphaelRaven_IdleNoFeet,
|
||||||
.animList = N(ExtraAnims_RafaelRaven),
|
.animList = N(ExtraAnims_RaphaelRaven),
|
||||||
.pos = { 357.0f, -120.0f, -30.0f },
|
.pos = { 357.0f, -120.0f, -30.0f },
|
||||||
.yaw = 90.0f
|
.yaw = 90.0f
|
||||||
},
|
},
|
||||||
@ -1015,7 +1015,7 @@ EvtScript N(EVS_ManageNpcPool) = {
|
|||||||
EVT_CALL(DeleteNpc, NPC_Boo3)
|
EVT_CALL(DeleteNpc, NPC_Boo3)
|
||||||
EVT_CALL(DeleteNpc, NPC_TubbasHeart)
|
EVT_CALL(DeleteNpc, NPC_TubbasHeart)
|
||||||
EVT_WAIT(1)
|
EVT_WAIT(1)
|
||||||
EVT_CALL(N(CreateParadeNPC), NPC_RafaelRaven)
|
EVT_CALL(N(CreateParadeNPC), NPC_RaphaelRaven)
|
||||||
EVT_CALL(N(CreateParadeNPC), NPC_LavaPiranha)
|
EVT_CALL(N(CreateParadeNPC), NPC_LavaPiranha)
|
||||||
EVT_CALL(N(CreateParadeNPC), NPC_Yoshi1)
|
EVT_CALL(N(CreateParadeNPC), NPC_Yoshi1)
|
||||||
EVT_CALL(N(CreateParadeNPC), NPC_Yoshi2)
|
EVT_CALL(N(CreateParadeNPC), NPC_Yoshi2)
|
||||||
@ -1052,7 +1052,7 @@ EvtScript N(EVS_ManageNpcPool) = {
|
|||||||
EVT_CALL(DeleteNpc, NPC_Yoshi3)
|
EVT_CALL(DeleteNpc, NPC_Yoshi3)
|
||||||
EVT_CALL(DeleteNpc, NPC_Yoshi4)
|
EVT_CALL(DeleteNpc, NPC_Yoshi4)
|
||||||
EVT_CALL(DeleteNpc, NPC_YoshiChief)
|
EVT_CALL(DeleteNpc, NPC_YoshiChief)
|
||||||
EVT_CALL(DeleteNpc, NPC_RafaelRaven)
|
EVT_CALL(DeleteNpc, NPC_RaphaelRaven)
|
||||||
EVT_CALL(DeleteNpc, NPC_LavaPiranha)
|
EVT_CALL(DeleteNpc, NPC_LavaPiranha)
|
||||||
EVT_WAIT(1)
|
EVT_WAIT(1)
|
||||||
EVT_CALL(N(CreateParadeNPC), NPC_HuffNPuffBody)
|
EVT_CALL(N(CreateParadeNPC), NPC_HuffNPuffBody)
|
||||||
|
@ -136,7 +136,7 @@ EvtScript N(EVS_ParadePhase_Caravan) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_LOOP
|
EVT_END_LOOP
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_CALL(ShowEmote, NPC_Tutankoopa1, EMOTE_ELLIPSIS, 0, 60, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Tutankoopa1, EMOTE_ELLIPSIS, 0, 60, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(60)
|
EVT_WAIT(60)
|
||||||
EVT_CALL(MakeLerp, 90, 0, 5, EASING_LINEAR)
|
EVT_CALL(MakeLerp, 90, 0, 5, EASING_LINEAR)
|
||||||
EVT_LOOP(5)
|
EVT_LOOP(5)
|
||||||
@ -190,7 +190,7 @@ EvtScript N(EVS_ParadePhase_BuzzarNest) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_LOOP
|
EVT_END_LOOP
|
||||||
EVT_WAIT(200)
|
EVT_WAIT(200)
|
||||||
EVT_CALL(ShowEmote, NPC_Buzzar, EMOTE_SHOCK, 45, 30, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Buzzar, EMOTE_SHOCK, 45, 30, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(40)
|
EVT_WAIT(40)
|
||||||
EVT_CALL(SetNpcAnimation, NPC_Buzzar, ANIM_Buzzar_Anim03)
|
EVT_CALL(SetNpcAnimation, NPC_Buzzar, ANIM_Buzzar_Anim03)
|
||||||
EVT_CALL(NpcFlyTo, NPC_Buzzar, -855, 100, -180, 60, 0, EASING_LINEAR)
|
EVT_CALL(NpcFlyTo, NPC_Buzzar, -855, 100, -180, 60, 0, EASING_LINEAR)
|
||||||
|
@ -11,11 +11,11 @@ EvtScript N(EVS_ParadePhase_Yoshis) = {
|
|||||||
EVT_END_LOOP
|
EVT_END_LOOP
|
||||||
EVT_END_CHILD_THREAD
|
EVT_END_CHILD_THREAD
|
||||||
EVT_CHILD_THREAD
|
EVT_CHILD_THREAD
|
||||||
EVT_CALL(SetNpcScale, NPC_RafaelRaven, EVT_FLOAT(2.0), EVT_FLOAT(2.0), 1)
|
EVT_CALL(SetNpcScale, NPC_RaphaelRaven, EVT_FLOAT(2.0), EVT_FLOAT(2.0), 1)
|
||||||
EVT_LOOP(0)
|
EVT_LOOP(0)
|
||||||
EVT_CALL(NpcFlyTo, NPC_RafaelRaven, 357, 0, -30, 10, 0, EASING_LINEAR)
|
EVT_CALL(NpcFlyTo, NPC_RaphaelRaven, 357, 0, -30, 10, 0, EASING_LINEAR)
|
||||||
EVT_WAIT(60)
|
EVT_WAIT(60)
|
||||||
EVT_CALL(NpcFlyTo, NPC_RafaelRaven, 357, -120, -30, 10, 0, EASING_LINEAR)
|
EVT_CALL(NpcFlyTo, NPC_RaphaelRaven, 357, -120, -30, 10, 0, EASING_LINEAR)
|
||||||
EVT_WAIT(60)
|
EVT_WAIT(60)
|
||||||
EVT_END_LOOP
|
EVT_END_LOOP
|
||||||
EVT_END_CHILD_THREAD
|
EVT_END_CHILD_THREAD
|
||||||
|
@ -171,7 +171,7 @@ EvtScript N(EVS_NpcInteract_Petunia) = {
|
|||||||
EVT_CALL(SetNpcAnimation, NPC_MontyMole_01, ANIM_MontyMole_Dark_Anim16)
|
EVT_CALL(SetNpcAnimation, NPC_MontyMole_01, ANIM_MontyMole_Dark_Anim16)
|
||||||
EVT_WAIT(10)
|
EVT_WAIT(10)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_263, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_263, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_MontyMole_01, EMOTE_QUESTION, -45, 30, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_MontyMole_01, EMOTE_QUESTION, -45, 30, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_CALL(GetNpcPos, NPC_MontyMole_02, LVar0, LVar1, LVar2)
|
EVT_CALL(GetNpcPos, NPC_MontyMole_02, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Petunia_AngryTalk, ANIM_Petunia_Angry, 0, MSG_CH6_0052)
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Petunia_AngryTalk, ANIM_Petunia_Angry, 0, MSG_CH6_0052)
|
||||||
EVT_CALL(SetNpcYaw, NPC_MontyMole_02, 90)
|
EVT_CALL(SetNpcYaw, NPC_MontyMole_02, 90)
|
||||||
@ -226,7 +226,7 @@ EvtScript N(EVS_NpcInteract_Petunia) = {
|
|||||||
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
|
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
|
||||||
EVT_CALL(SetNpcAnimation, NPC_Dayzee, ANIM_Dayzee_Anim0D)
|
EVT_CALL(SetNpcAnimation, NPC_Dayzee, ANIM_Dayzee_Anim0D)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_Dayzee, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_Dayzee, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_Dayzee, EMOTE_EXCLAMATION, 45, 30, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Dayzee, EMOTE_EXCLAMATION, 45, 30, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(15)
|
EVT_WAIT(15)
|
||||||
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Petunia_AngryTalk, ANIM_Petunia_Angry, 0, MSG_CH6_0056)
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Petunia_AngryTalk, ANIM_Petunia_Angry, 0, MSG_CH6_0056)
|
||||||
EVT_SET(LVar4, EVT_FLOAT(90.0))
|
EVT_SET(LVar4, EVT_FLOAT(90.0))
|
||||||
@ -401,7 +401,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_01) = {
|
|||||||
EVT_SET(LVar1, 10)
|
EVT_SET(LVar1, 10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_MontyMole_01, EMOTE_EXCLAMATION, 0, LVar1, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_MontyMole_01, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(LVar1)
|
EVT_WAIT(LVar1)
|
||||||
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_10000000, 1)
|
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_10000000, 1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -480,7 +480,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_02) = {
|
|||||||
EVT_SET(LVar1, 10)
|
EVT_SET(LVar1, 10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_02, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_02, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_MontyMole_02, EMOTE_EXCLAMATION, 0, LVar1, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_MontyMole_02, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(LVar1)
|
EVT_WAIT(LVar1)
|
||||||
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_10000000, 1)
|
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_10000000, 1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -559,7 +559,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_03) = {
|
|||||||
EVT_SET(LVar1, 10)
|
EVT_SET(LVar1, 10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_03, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_03, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_MontyMole_03, EMOTE_EXCLAMATION, 0, LVar1, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_MontyMole_03, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(LVar1)
|
EVT_WAIT(LVar1)
|
||||||
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_10000000, 1)
|
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_10000000, 1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -638,7 +638,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_04) = {
|
|||||||
EVT_SET(LVar1, 10)
|
EVT_SET(LVar1, 10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_04, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_MontyMole_04, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_MontyMole_04, EMOTE_EXCLAMATION, 0, LVar1, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_MontyMole_04, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(LVar1)
|
EVT_WAIT(LVar1)
|
||||||
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_10000000, 1)
|
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_10000000, 1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
||||||
#define SUPER_BLOCK_GAMEFLAG GF_FLO08_SuperBlock
|
#define SUPER_BLOCK_GAMEFLAG GF_FLO08_SuperBlock
|
||||||
#include "world/common/entity/SuperBlock.inc.c"
|
#include "world/common/entity/SuperBlock.inc.c"
|
||||||
#include "world/common/entity/SuperBlock.data.inc.c"
|
|
||||||
|
|
||||||
EvtScript N(EVS_MakeEntities) = {
|
EvtScript N(EVS_MakeEntities) = {
|
||||||
EVT_MAKE_SUPER_BLOCK(-780, 120, -110, 0)
|
EVT_MAKE_SUPER_BLOCK(-780, 120, -110, 0)
|
||||||
|
@ -162,7 +162,7 @@ StaticNpc N(NpcData_GateFlower) = {
|
|||||||
.settings = &N(NpcSettings_GateFlower),
|
.settings = &N(NpcSettings_GateFlower),
|
||||||
.pos = { -695.0f, 0.0f, -30.0f },
|
.pos = { -695.0f, 0.0f, -30.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_GateFlower),
|
.init = &N(EVS_NpcInit_GateFlower),
|
||||||
.drops = GATE_FLOWER_DROPS,
|
.drops = GATE_FLOWER_DROPS,
|
||||||
.animations = GATE_FLOWER_YELLOW_ANIMS,
|
.animations = GATE_FLOWER_YELLOW_ANIMS,
|
||||||
|
@ -137,7 +137,7 @@ EvtScript N(EVS_NpcInteract_Lily) = {
|
|||||||
EVT_CALL(NpcFacePlayer, NPC_SELF, 1)
|
EVT_CALL(NpcFacePlayer, NPC_SELF, 1)
|
||||||
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Lily_Idle)
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Lily_Idle)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_SELF, EMOTE_EXCLAMATION, 0, 15, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_SELF, EMOTE_EXCLAMATION, 0, 15, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(15)
|
EVT_WAIT(15)
|
||||||
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Lily_Idle, ANIM_Lily_Idle, 0, MSG_CH6_007A)
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Lily_Idle, ANIM_Lily_Idle, 0, MSG_CH6_007A)
|
||||||
EVT_CALL(EndSpeech, NPC_SELF, ANIM_Lily_Dread, ANIM_Lily_Idle, 0)
|
EVT_CALL(EndSpeech, NPC_SELF, ANIM_Lily_Dread, ANIM_Lily_Idle, 0)
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#include "../common/FlowerSpawnRegion.inc.c"
|
#include "../common/FlowerSpawnRegion.inc.c"
|
||||||
|
|
||||||
#include "world/common/entity/Pipe.inc.c"
|
#include "world/common/entity/Pipe.inc.c"
|
||||||
#include "world/common/entity/Pipe.data.inc.c"
|
|
||||||
|
|
||||||
API_CALLABLE(N(SpawnSunEffect)) {
|
API_CALLABLE(N(SpawnSunEffect)) {
|
||||||
fx_sun_undeclared(FX_SUN_FROM_LEFT, 0, 0, 0, 0, 0);
|
fx_sun_undeclared(FX_SUN_FROM_LEFT, 0, 0, 0, 0, 0);
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
||||||
#define SUPER_BLOCK_GAMEFLAG GF_FLO16_SuperBlock
|
#define SUPER_BLOCK_GAMEFLAG GF_FLO16_SuperBlock
|
||||||
#include "world/common/entity/SuperBlock.inc.c"
|
#include "world/common/entity/SuperBlock.inc.c"
|
||||||
#include "world/common/entity/SuperBlock.data.inc.c"
|
|
||||||
|
|
||||||
EvtScript N(EVS_TetherCameraToPlayer) = {
|
EvtScript N(EVS_TetherCameraToPlayer) = {
|
||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
|
@ -162,7 +162,7 @@ StaticNpc N(NpcData_GateFlower) = {
|
|||||||
.settings = &N(NpcSettings_GateFlower),
|
.settings = &N(NpcSettings_GateFlower),
|
||||||
.pos = { 385.0f, 0.0f, -35.0f },
|
.pos = { 385.0f, 0.0f, -35.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_GateFlower),
|
.init = &N(EVS_NpcInit_GateFlower),
|
||||||
.drops = GATE_FLOWER_DROPS,
|
.drops = GATE_FLOWER_DROPS,
|
||||||
.animations = GATE_FLOWER_BLUE_ANIMS,
|
.animations = GATE_FLOWER_BLUE_ANIMS,
|
||||||
|
@ -162,7 +162,7 @@ StaticNpc N(NpcData_GateFlower) = {
|
|||||||
.settings = &N(NpcSettings_GateFlower),
|
.settings = &N(NpcSettings_GateFlower),
|
||||||
.pos = { 505.0f, 0.0f, -25.0f },
|
.pos = { 505.0f, 0.0f, -25.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_GateFlower),
|
.init = &N(EVS_NpcInit_GateFlower),
|
||||||
.drops = GATE_FLOWER_DROPS,
|
.drops = GATE_FLOWER_DROPS,
|
||||||
.animations = GATE_FLOWER_RED_ANIMS,
|
.animations = GATE_FLOWER_RED_ANIMS,
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
#include "hud_element.h"
|
#include "hud_element.h"
|
||||||
|
|
||||||
#include "world/common/entity/Pipe.inc.c"
|
#include "world/common/entity/Pipe.inc.c"
|
||||||
#include "world/common/entity/Pipe.data.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/atomic/TexturePan.inc.c"
|
#include "world/common/atomic/TexturePan.inc.c"
|
||||||
#include "world/common/atomic/TexturePan.data.inc.c"
|
#include "world/common/atomic/TexturePan.data.inc.c"
|
||||||
|
@ -253,7 +253,7 @@ EvtScript N(EVS_Scene_MeetingTwink) = {
|
|||||||
EVT_CALL(GetNpcPos, NPC_Twink, LVar0, LVar1, LVar2)
|
EVT_CALL(GetNpcPos, NPC_Twink, LVar0, LVar1, LVar2)
|
||||||
EVT_ADD(LVar0, 40)
|
EVT_ADD(LVar0, 40)
|
||||||
EVT_CALL(NpcMoveTo, NPC_Twink, LVar0, LVar2, 0)
|
EVT_CALL(NpcMoveTo, NPC_Twink, LVar0, LVar2, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Twink, EMOTE_SHOCK, 45, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Twink, EMOTE_SHOCK, 45, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_CALL(SetNpcAnimation, NPC_Twink, ANIM_Twink_ShoutJoy)
|
EVT_CALL(SetNpcAnimation, NPC_Twink, ANIM_Twink_ShoutJoy)
|
||||||
EVT_CALL(SetNpcJumpscale, NPC_Twink, EVT_FLOAT(1.0))
|
EVT_CALL(SetNpcJumpscale, NPC_Twink, EVT_FLOAT(1.0))
|
||||||
|
@ -445,7 +445,7 @@ StaticNpc N(NpcData_StarSpirits)[] = {
|
|||||||
.settings = &N(NpcSettings_StarSpirit),
|
.settings = &N(NpcSettings_StarSpirit),
|
||||||
.pos = { -30.0f, 260.0f, -170.0f },
|
.pos = { -30.0f, 260.0f, -170.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800,
|
.flags = COMMON_PASSIVE_FLAGS,
|
||||||
.init = &N(EVS_NpcInit_Eldstar),
|
.init = &N(EVS_NpcInit_Eldstar),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = ELDSTAR_ANIMS,
|
.animations = ELDSTAR_ANIMS,
|
||||||
|
@ -149,7 +149,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_StarMan),
|
.settings = &N(NpcSettings_StarMan),
|
||||||
.pos = { -463.0f, 10.0f, 400.0f },
|
.pos = { -463.0f, 10.0f, 400.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800,
|
.flags = COMMON_PASSIVE_FLAGS,
|
||||||
.init = &N(EVS_NpcInit_StarKid_01),
|
.init = &N(EVS_NpcInit_StarKid_01),
|
||||||
.drops = STAR_MAN_DROPS,
|
.drops = STAR_MAN_DROPS,
|
||||||
.animations = STAR_MAN_ANIMS,
|
.animations = STAR_MAN_ANIMS,
|
||||||
@ -160,7 +160,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_StarMan),
|
.settings = &N(NpcSettings_StarMan),
|
||||||
.pos = { -325.0f, 10.0f, 600.0f },
|
.pos = { -325.0f, 10.0f, 600.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800,
|
.flags = COMMON_PASSIVE_FLAGS,
|
||||||
.init = &N(EVS_NpcInit_StarKid_02),
|
.init = &N(EVS_NpcInit_StarKid_02),
|
||||||
.drops = STAR_MAN_DROPS,
|
.drops = STAR_MAN_DROPS,
|
||||||
.animations = STAR_MAN_ANIMS,
|
.animations = STAR_MAN_ANIMS,
|
||||||
@ -171,7 +171,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_StarMan_Wander),
|
.settings = &N(NpcSettings_StarMan_Wander),
|
||||||
.pos = { 0.0f, 10.0f, 300.0f },
|
.pos = { 0.0f, 10.0f, 300.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800,
|
.flags = COMMON_PASSIVE_FLAGS,
|
||||||
.init = &N(EVS_NpcInit_StarKid_03),
|
.init = &N(EVS_NpcInit_StarKid_03),
|
||||||
.drops = STAR_MAN_DROPS,
|
.drops = STAR_MAN_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -194,7 +194,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_StarMan_Wander),
|
.settings = &N(NpcSettings_StarMan_Wander),
|
||||||
.pos = { 250.0f, 10.0f, 500.0f },
|
.pos = { 250.0f, 10.0f, 500.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800,
|
.flags = COMMON_PASSIVE_FLAGS,
|
||||||
.init = &N(EVS_NpcInit_StarKid_04),
|
.init = &N(EVS_NpcInit_StarKid_04),
|
||||||
.drops = STAR_MAN_DROPS,
|
.drops = STAR_MAN_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -217,7 +217,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_StarMan),
|
.settings = &N(NpcSettings_StarMan),
|
||||||
.pos = { -485.0f, 335.0f, -100.0f },
|
.pos = { -485.0f, 335.0f, -100.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800,
|
.flags = COMMON_PASSIVE_FLAGS,
|
||||||
.init = &N(EVS_NpcInit_StarKid_05),
|
.init = &N(EVS_NpcInit_StarKid_05),
|
||||||
.drops = STAR_MAN_DROPS,
|
.drops = STAR_MAN_DROPS,
|
||||||
.animations = STAR_MAN_ANIMS,
|
.animations = STAR_MAN_ANIMS,
|
||||||
@ -228,7 +228,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_StarMan),
|
.settings = &N(NpcSettings_StarMan),
|
||||||
.pos = { 458.0f, 35.0f, 233.0f },
|
.pos = { 458.0f, 35.0f, 233.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800,
|
.flags = COMMON_PASSIVE_FLAGS,
|
||||||
.init = &N(EVS_NpcInit_ToadHouseKeeper),
|
.init = &N(EVS_NpcInit_ToadHouseKeeper),
|
||||||
.drops = STAR_MAN_DROPS,
|
.drops = STAR_MAN_DROPS,
|
||||||
.animations = STAR_MAN_ANIMS,
|
.animations = STAR_MAN_ANIMS,
|
||||||
@ -239,7 +239,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_StarMan),
|
.settings = &N(NpcSettings_StarMan),
|
||||||
.pos = { 140.0f, 285.0f, -315.0f },
|
.pos = { 140.0f, 285.0f, -315.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800,
|
.flags = COMMON_PASSIVE_FLAGS,
|
||||||
.init = &N(EVS_NpcInit_ShopOwner),
|
.init = &N(EVS_NpcInit_ShopOwner),
|
||||||
.drops = STAR_MAN_DROPS,
|
.drops = STAR_MAN_DROPS,
|
||||||
.animations = STAR_MAN_ANIMS,
|
.animations = STAR_MAN_ANIMS,
|
||||||
@ -250,7 +250,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_ChuckQuizmo),
|
.settings = &N(NpcSettings_ChuckQuizmo),
|
||||||
.pos = { -200.0f, 0.0f, 400.0f },
|
.pos = { -200.0f, 0.0f, 400.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.initVarCount = 1,
|
.initVarCount = 1,
|
||||||
.initVar = { .bytes = { 0, QUIZ_AREA_HOS, QUIZ_COUNT_HOS, QUIZ_MAP_HOS_03 }},
|
.initVar = { .bytes = { 0, QUIZ_AREA_HOS, QUIZ_COUNT_HOS, QUIZ_MAP_HOS_03 }},
|
||||||
.drops = QUIZMO_DROPS,
|
.drops = QUIZMO_DROPS,
|
||||||
|
@ -688,7 +688,7 @@ EvtScript N(EVS_KootCheckBall_Merluvlee) = {
|
|||||||
EVT_CHOOSE_KEY_ITEM_FROM(N(CrystalBallItems))
|
EVT_CHOOSE_KEY_ITEM_FROM(N(CrystalBallItems))
|
||||||
EVT_IF_NE(LVar0, -1)
|
EVT_IF_NE(LVar0, -1)
|
||||||
EVT_CALL(SpeakToPlayer, NPC_Merluvlee, ANIM_Merluvlee_Talk, ANIM_Merluvlee_Idle, 0, MSG_HOS_0049)
|
EVT_CALL(SpeakToPlayer, NPC_Merluvlee, ANIM_Merluvlee_Talk, ANIM_Merluvlee_Idle, 0, MSG_HOS_0049)
|
||||||
EVT_GIVE_KEY_REWARD(ITEM_KOOT_LUIGI_AUTOGRAPH)
|
EVT_GIVE_KEY_REWARD(ITEM_KOOT_MERLUVLEES_AUTOGRAPH)
|
||||||
EVT_SET(GF_HOS06_Gift_MerluvleesAutograph, TRUE)
|
EVT_SET(GF_HOS06_Gift_MerluvleesAutograph, TRUE)
|
||||||
EVT_ELSE
|
EVT_ELSE
|
||||||
EVT_CALL(SpeakToPlayer, NPC_Merluvlee, ANIM_Merluvlee_Talk, ANIM_Merluvlee_Idle, 0, MSG_HOS_0048)
|
EVT_CALL(SpeakToPlayer, NPC_Merluvlee, ANIM_Merluvlee_Talk, ANIM_Merluvlee_Idle, 0, MSG_HOS_0048)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "effects.h"
|
#include "effects.h"
|
||||||
|
|
||||||
#include "world/common/atomic/Chest.inc.c"
|
#include "world/common/entity/Chest.inc.c"
|
||||||
|
|
||||||
API_CALLABLE(N(DismissGotItem)) {
|
API_CALLABLE(N(DismissGotItem)) {
|
||||||
Entity* bigChest = get_entity_by_index(script->varTable[0]);
|
Entity* bigChest = get_entity_by_index(script->varTable[0]);
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
||||||
#define SUPER_BLOCK_GAMEFLAG GF_ISK10_SuperBlock
|
#define SUPER_BLOCK_GAMEFLAG GF_ISK10_SuperBlock
|
||||||
#include "world/common/entity/SuperBlock.inc.c"
|
#include "world/common/entity/SuperBlock.inc.c"
|
||||||
#include "world/common/entity/SuperBlock.data.inc.c"
|
|
||||||
|
|
||||||
API_CALLABLE(N(MonitorPlayerLastFloor)) {
|
API_CALLABLE(N(MonitorPlayerLastFloor)) {
|
||||||
s32 level = -1;
|
s32 level = -1;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "iwa_03.h"
|
#include "iwa_03.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
|
|
||||||
#include "world/common/atomic/Chest.inc.c"
|
#include "world/common/entity/Chest.inc.c"
|
||||||
|
|
||||||
MAP_RODATA_PAD(1,entity);
|
MAP_RODATA_PAD(1,entity);
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ StaticNpc N(NpcData_TrainToad)[] = {
|
|||||||
.settings = &N(NpcSettings_TrainToad),
|
.settings = &N(NpcSettings_TrainToad),
|
||||||
.pos = { -440.0f, 20.0f, 110.0f },
|
.pos = { -440.0f, 20.0f, 110.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_TrainToad_01),
|
.init = &N(EVS_NpcInit_TrainToad_01),
|
||||||
.drops = TRAIN_CONDUCTOR_DROPS,
|
.drops = TRAIN_CONDUCTOR_DROPS,
|
||||||
.animations = TRAIN_TOAD_WHITE_ANIMS,
|
.animations = TRAIN_TOAD_WHITE_ANIMS,
|
||||||
@ -139,7 +139,7 @@ StaticNpc N(NpcData_TrainToad)[] = {
|
|||||||
.settings = &N(NpcSettings_TrainToad),
|
.settings = &N(NpcSettings_TrainToad),
|
||||||
.pos = { -425.0f, 70.0f, -20.0f },
|
.pos = { -425.0f, 70.0f, -20.0f },
|
||||||
.yaw = 0,
|
.yaw = 0,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_TrainToad_02),
|
.init = &N(EVS_NpcInit_TrainToad_02),
|
||||||
.drops = TRAIN_CONDUCTOR_DROPS,
|
.drops = TRAIN_CONDUCTOR_DROPS,
|
||||||
.animations = TRAIN_CONDUCTOR_ANIMS,
|
.animations = TRAIN_CONDUCTOR_ANIMS,
|
||||||
@ -151,7 +151,7 @@ StaticNpc N(NpcData_Toad) = {
|
|||||||
.settings = &N(NpcSettings_Toad_Stationary),
|
.settings = &N(NpcSettings_Toad_Stationary),
|
||||||
.pos = { -254.0f, 20.0f, 165.0f },
|
.pos = { -254.0f, 20.0f, 165.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Toad),
|
.init = &N(EVS_NpcInit_Toad),
|
||||||
.drops = {
|
.drops = {
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.dropFlags = NPC_DROP_FLAG_80,
|
||||||
@ -168,7 +168,7 @@ StaticNpc N(NpcData_ThreeSisters)[] = {
|
|||||||
.settings = &N(NpcSettings_Toad_Stationary),
|
.settings = &N(NpcSettings_Toad_Stationary),
|
||||||
.pos = { -562.0f, 0.0f, 384.0f },
|
.pos = { -562.0f, 0.0f, 384.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_ThreeSisters_02),
|
.init = &N(EVS_NpcInit_ThreeSisters_02),
|
||||||
.drops = TOADETTE_DROPS,
|
.drops = TOADETTE_DROPS,
|
||||||
.animations = TOADETTE_PINK_ANIMS,
|
.animations = TOADETTE_PINK_ANIMS,
|
||||||
@ -179,7 +179,7 @@ StaticNpc N(NpcData_ThreeSisters)[] = {
|
|||||||
.settings = &N(NpcSettings_Toad_Stationary),
|
.settings = &N(NpcSettings_Toad_Stationary),
|
||||||
.pos = { -582.0f, 0.0f, 406.0f },
|
.pos = { -582.0f, 0.0f, 406.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_ThreeSisters_02),
|
.init = &N(EVS_NpcInit_ThreeSisters_02),
|
||||||
.drops = TOADETTE_DROPS,
|
.drops = TOADETTE_DROPS,
|
||||||
.animations = TOADETTE_PINK_ANIMS,
|
.animations = TOADETTE_PINK_ANIMS,
|
||||||
@ -190,7 +190,7 @@ StaticNpc N(NpcData_ThreeSisters)[] = {
|
|||||||
.settings = &N(NpcSettings_Toad_Stationary),
|
.settings = &N(NpcSettings_Toad_Stationary),
|
||||||
.pos = { -524.0f, 0.0f, 411.0f },
|
.pos = { -524.0f, 0.0f, 411.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_ThreeSisters_02),
|
.init = &N(EVS_NpcInit_ThreeSisters_02),
|
||||||
.drops = TOADETTE_DROPS,
|
.drops = TOADETTE_DROPS,
|
||||||
.animations = TOADETTE_PINK_ANIMS,
|
.animations = TOADETTE_PINK_ANIMS,
|
||||||
@ -204,7 +204,7 @@ StaticNpc N(NpcData_Dryite)[] = {
|
|||||||
.settings = &N(NpcSettings_Dryite),
|
.settings = &N(NpcSettings_Dryite),
|
||||||
.pos = { -344.0f, 0.0f, 379.0f },
|
.pos = { -344.0f, 0.0f, 379.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Dryite),
|
.init = &N(EVS_NpcInit_Dryite),
|
||||||
.drops = DRYITE_DROPS,
|
.drops = DRYITE_DROPS,
|
||||||
.animations = DRYITE_GREEN_ANIMS,
|
.animations = DRYITE_GREEN_ANIMS,
|
||||||
@ -215,7 +215,7 @@ StaticNpc N(NpcData_Dryite)[] = {
|
|||||||
.settings = &N(NpcSettings_Toad_Stationary),
|
.settings = &N(NpcSettings_Toad_Stationary),
|
||||||
.pos = { -760.0f, 0.0f, 160.0f },
|
.pos = { -760.0f, 0.0f, 160.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_ThreeSisters_01),
|
.init = &N(EVS_NpcInit_ThreeSisters_01),
|
||||||
.drops = TOADETTE_DROPS,
|
.drops = TOADETTE_DROPS,
|
||||||
.animations = TOADETTE_GREEN_ANIMS,
|
.animations = TOADETTE_GREEN_ANIMS,
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
#define SUPER_BLOCK_MAPVAR MV_SuperBlock
|
||||||
#define SUPER_BLOCK_GAMEFLAG GF_IWA10_SuperBlock
|
#define SUPER_BLOCK_GAMEFLAG GF_IWA10_SuperBlock
|
||||||
#include "world/common/entity/SuperBlock.inc.c"
|
#include "world/common/entity/SuperBlock.inc.c"
|
||||||
#include "world/common/entity/SuperBlock.data.inc.c"
|
|
||||||
|
|
||||||
EvtScript N(EVS_OnSmashBlock) = {
|
EvtScript N(EVS_OnSmashBlock) = {
|
||||||
EVT_SET(GF_IWA10_Hammer1Block, TRUE)
|
EVT_SET(GF_IWA10_Hammer1Block, TRUE)
|
||||||
|
@ -310,7 +310,7 @@ StaticNpc N(NpcData_Parakarry) = {
|
|||||||
.settings = &N(NpcSettings_Parakarry),
|
.settings = &N(NpcSettings_Parakarry),
|
||||||
.pos = { -610.0f, 230.0f, -485.0f },
|
.pos = { -610.0f, 230.0f, -485.0f },
|
||||||
.yaw = 0,
|
.yaw = 0,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_200000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_200000,
|
||||||
.init = &N(EVS_NpcInit_Parakarry),
|
.init = &N(EVS_NpcInit_Parakarry),
|
||||||
.drops = {
|
.drops = {
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.dropFlags = NPC_DROP_FLAG_80,
|
||||||
|
@ -23,7 +23,7 @@ StaticNpc N(NpcData_TrainToad) = {
|
|||||||
.settings = &N(NpcSettings_TrainToad),
|
.settings = &N(NpcSettings_TrainToad),
|
||||||
.pos = { NPC_DISPOSE_LOCATION },
|
.pos = { NPC_DISPOSE_LOCATION },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_TrainToad),
|
.init = &N(EVS_NpcInit_TrainToad),
|
||||||
.drops = TRAIN_CONDUCTOR_DROPS,
|
.drops = TRAIN_CONDUCTOR_DROPS,
|
||||||
.animations = TRAIN_CONDUCTOR_ANIMS,
|
.animations = TRAIN_CONDUCTOR_ANIMS,
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "model.h"
|
#include "model.h"
|
||||||
|
|
||||||
void N(PullVine_apply_shear_mtx)(Matrix4f mtx, f32 f) {
|
void N(MoveBush_apply_shear_mtx)(Matrix4f mtx, f32 f) {
|
||||||
guMtxIdentF(mtx);
|
guMtxIdentF(mtx);
|
||||||
mtx[1][0] = f * 0.2;
|
mtx[1][0] = f * 0.2;
|
||||||
mtx[1][1] = 1.0f;
|
mtx[1][1] = 1.0f;
|
||||||
mtx[1][2] = 0.0f;
|
mtx[1][2] = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiStatus N(PullVine_ShearBushModel)(Evt* script) {
|
ApiStatus N(MoveBush_AnimateShearing)(Evt* script) {
|
||||||
Bytecode* args = script->ptrReadPos;
|
Bytecode* args = script->ptrReadPos;
|
||||||
s32 modelID = evt_get_variable(script, *args++);
|
s32 modelID = evt_get_variable(script, *args++);
|
||||||
s32 modelIndex = get_model_list_index_from_tree_index(modelID);
|
s32 modelIndex = get_model_list_index_from_tree_index(modelID);
|
||||||
@ -17,10 +17,10 @@ ApiStatus N(PullVine_ShearBushModel)(Evt* script) {
|
|||||||
Matrix4f mtx;
|
Matrix4f mtx;
|
||||||
|
|
||||||
if (!(mdl->flags & MODEL_FLAG_HAS_TRANSFORM_APPLIED)) {
|
if (!(mdl->flags & MODEL_FLAG_HAS_TRANSFORM_APPLIED)) {
|
||||||
N(PullVine_apply_shear_mtx)(mdl->transformMatrix, f);
|
N(MoveBush_apply_shear_mtx)(mdl->transformMatrix, f);
|
||||||
mdl->flags |= MODEL_FLAG_USES_TRANSFORM_MATRIX | MODEL_FLAG_HAS_TRANSFORM_APPLIED;
|
mdl->flags |= MODEL_FLAG_USES_TRANSFORM_MATRIX | MODEL_FLAG_HAS_TRANSFORM_APPLIED;
|
||||||
} else {
|
} else {
|
||||||
N(PullVine_apply_shear_mtx)(mtx, f);
|
N(MoveBush_apply_shear_mtx)(mtx, f);
|
||||||
guMtxCatF(mtx, mdl->transformMatrix, mdl->transformMatrix);
|
guMtxCatF(mtx, mdl->transformMatrix, mdl->transformMatrix);
|
||||||
}
|
}
|
||||||
return ApiStatus_DONE2;
|
return ApiStatus_DONE2;
|
55
src/world/area_jan/common/MoveBushTemplates.h
Normal file
55
src/world/area_jan/common/MoveBushTemplates.h
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "model.h"
|
||||||
|
|
||||||
|
#define EVT_MOVE_BUSHES(collider, bushModelL, bushmodelR, moveVarL, moveVarR) \
|
||||||
|
{ \
|
||||||
|
EVT_CALL(PlaySoundAtCollider, collider, SOUND_209F, 0) \
|
||||||
|
EVT_SET(LVar0, moveVarL) \
|
||||||
|
EVT_SET(LVar1, moveVarR) \
|
||||||
|
EVT_SET(LVar6, 0) \
|
||||||
|
EVT_SET(LVar7, 0) \
|
||||||
|
EVT_LOOP(60) \
|
||||||
|
EVT_SETF(LVar2, moveVarL) \
|
||||||
|
EVT_SETF(LVar3, moveVarR) \
|
||||||
|
EVT_SUBF(LVar2, LVar0) \
|
||||||
|
EVT_SUBF(LVar3, LVar1) \
|
||||||
|
EVT_SETF(LVar4, LVar2) \
|
||||||
|
EVT_SETF(LVar5, LVar3) \
|
||||||
|
EVT_MULF(LVar4, EVT_FLOAT(0.09375)) \
|
||||||
|
EVT_MULF(LVar5, EVT_FLOAT(0.09375)) \
|
||||||
|
EVT_MULF(LVar6, EVT_FLOAT(0.8)) \
|
||||||
|
EVT_MULF(LVar7, EVT_FLOAT(0.8)) \
|
||||||
|
EVT_ADDF(LVar6, LVar4) \
|
||||||
|
EVT_ADDF(LVar7, LVar5) \
|
||||||
|
EVT_ADDF(LVar0, LVar6) \
|
||||||
|
EVT_ADDF(LVar1, LVar7) \
|
||||||
|
EVT_CALL(TranslateModel, bushModelL, moveVarL, 0, 0) \
|
||||||
|
EVT_CALL(TranslateModel, bushmodelR, moveVarR, 0, 0) \
|
||||||
|
EVT_CALL(N(MoveBush_AnimateShearing), bushModelL, LVar6) \
|
||||||
|
EVT_CALL(N(MoveBush_AnimateShearing), bushmodelR, LVar7) \
|
||||||
|
EVT_WAIT(1) \
|
||||||
|
EVT_END_LOOP \
|
||||||
|
EVT_RETURN \
|
||||||
|
EVT_END \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define EVT_MOVE_BUSH(collider, bushModel, moveVar) \
|
||||||
|
{ \
|
||||||
|
EVT_CALL(PlaySoundAtCollider, collider, SOUND_209F, 0) \
|
||||||
|
EVT_SET(LVar0, MV_CliffTopBush1OffsetR) \
|
||||||
|
EVT_SET(LVar6, 0) \
|
||||||
|
EVT_LOOP(60) \
|
||||||
|
EVT_SETF(LVar2, moveVar) \
|
||||||
|
EVT_SUBF(LVar2, LVar0) \
|
||||||
|
EVT_SETF(LVar4, LVar2) \
|
||||||
|
EVT_MULF(LVar4, EVT_FLOAT(0.09375)) \
|
||||||
|
EVT_MULF(LVar6, EVT_FLOAT(0.8)) \
|
||||||
|
EVT_ADDF(LVar6, LVar4) \
|
||||||
|
EVT_ADDF(LVar0, LVar6) \
|
||||||
|
EVT_CALL(TranslateModel, bushModel, moveVar, 0, 0) \
|
||||||
|
EVT_CALL(N(MoveBush_AnimateShearing), bushModel, LVar6) \
|
||||||
|
EVT_WAIT(1) \
|
||||||
|
EVT_END_LOOP \
|
||||||
|
EVT_RETURN \
|
||||||
|
EVT_END \
|
||||||
|
}
|
193
src/world/area_jan/common/PullVine.inc.c
Normal file
193
src/world/area_jan/common/PullVine.inc.c
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
// Requirements
|
||||||
|
|
||||||
|
// Script to execute when a vine is pulled (can be a MapVar)
|
||||||
|
#ifndef PULL_VINE_CALLBACK_SCRIPT
|
||||||
|
#error PULL_VINE_CALLBACK_SCRIPT is not defined!
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
// Implementation
|
||||||
|
|
||||||
|
API_CALLABLE(N(PullVine_WaitForPlayerGrab)) {
|
||||||
|
Bytecode* args = script->ptrReadPos;
|
||||||
|
f32 modelX, modelY, modelZ;
|
||||||
|
f32 dx, dy, dz;
|
||||||
|
f32 dist;
|
||||||
|
s32 result;
|
||||||
|
|
||||||
|
modelX = evt_get_float_variable(script, *args++);
|
||||||
|
modelY = evt_get_float_variable(script, *args++) + 15.0f;
|
||||||
|
modelZ = evt_get_float_variable(script, *args++);
|
||||||
|
dist = evt_get_float_variable(script, *args++);
|
||||||
|
dx = script->varTable[0] - modelX;
|
||||||
|
dy = script->varTable[1] - modelY;
|
||||||
|
dz = script->varTable[2] - modelZ;
|
||||||
|
result = 1;
|
||||||
|
if (!(SQ(dx) + SQ(dy) + SQ(dz) < SQ(dist))) {
|
||||||
|
result = 0;
|
||||||
|
}
|
||||||
|
script->varTable[0] = result;
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
|
||||||
|
API_CALLABLE(N(PullVine_UpdatePosition)) {
|
||||||
|
Bytecode* args = script->ptrReadPos;
|
||||||
|
f32 x1 = evt_get_float_variable(script, *args++);
|
||||||
|
f32 x2 = evt_get_float_variable(script, *args++);
|
||||||
|
|
||||||
|
evt_set_float_variable(script, *args++, (x2 - x1) / 10.0f);
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// LVarF ground modelID
|
||||||
|
// LVarD vine modelID 1
|
||||||
|
// LVarE vine modelID 2
|
||||||
|
// LVar9 tree leaves modelID 1
|
||||||
|
// LVarA tree leaves modelID 2
|
||||||
|
// LVarB tree leaves modelID 3
|
||||||
|
// LVarC unique vine index
|
||||||
|
// LVar5 drop delay
|
||||||
|
EvtScript N(EVS_PullVine_Manage) = {
|
||||||
|
EVT_CALL(GetModelCenter, LVarE)
|
||||||
|
EVT_SET(LVar6, LVar0)
|
||||||
|
EVT_SET(LVar7, LVar1)
|
||||||
|
EVT_SET(LVar8, LVar2)
|
||||||
|
EVT_ADD(LVar7, -20)
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
|
||||||
|
EVT_CALL(N(PullVine_WaitForPlayerGrab), LVar6, LVar7, LVar8, 20)
|
||||||
|
EVT_CALL(GetPlayerActionState, LVar1)
|
||||||
|
EVT_IF_NE(LVar1, ACTION_STATE_JUMP)
|
||||||
|
EVT_SET(LVar0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_EQ(LVar0, 1)
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(DisablePlayerPhysics, TRUE)
|
||||||
|
EVT_CALL(GetModelCenter, LVarD)
|
||||||
|
EVT_CALL(PlaySoundAt, SOUND_2089, 0, LVar0, LVar1, LVar2)
|
||||||
|
EVT_SETF(LVar0, EVT_FLOAT(0.0))
|
||||||
|
EVT_SETF(LVar1, EVT_FLOAT(0.0))
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_LOOP(3)
|
||||||
|
EVT_IF_NE(LVar9, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVar9, -2, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarA, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarA, -1, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarB, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarB, 2, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_NE(LVar9, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVar9, 2, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarA, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarA, 1, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarB, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarB, -2, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_IF_NE(LVar9, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVar9, 0, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarA, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarA, 0, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarB, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarB, 0, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_IF_EQ(LVar5, 0)
|
||||||
|
EVT_EXEC(PULL_VINE_CALLBACK_SCRIPT)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_WAIT(LVar5)
|
||||||
|
EVT_EXEC(PULL_VINE_CALLBACK_SCRIPT)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(SetPlayerActionState, ACTION_STATE_LAND)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_8000D)
|
||||||
|
EVT_LOOP(50)
|
||||||
|
EVT_CALL(N(PullVine_UpdatePosition), LVar0, EVT_FLOAT(-15.0), LVar2)
|
||||||
|
EVT_ADDF(LVar1, LVar2)
|
||||||
|
EVT_MULF(LVar1, EVT_FLOAT(0.93))
|
||||||
|
EVT_ADDF(LVar0, LVar1)
|
||||||
|
EVT_CALL(TranslateModel, LVarD, 0, LVar0, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarE, 0, LVar0, 0)
|
||||||
|
EVT_SET(LVar3, LVar7)
|
||||||
|
EVT_ADD(LVar3, LVar0)
|
||||||
|
EVT_SET(LVar4, LVar8)
|
||||||
|
EVT_ADD(LVar4, 2)
|
||||||
|
EVT_ADD(LVar3, 5)
|
||||||
|
EVT_CALL(SetPlayerPos, LVar6, LVar3, LVar4)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_CALL(GetModelCenter, LVarF)
|
||||||
|
EVT_CALL(SetPlayerJumpscale, 1)
|
||||||
|
EVT_CALL(PlayerJump, LVar6, LVar1, LVar4, 10)
|
||||||
|
EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE)
|
||||||
|
EVT_CALL(GetModelCenter, LVarD)
|
||||||
|
EVT_CALL(PlaySoundAt, SOUND_2089, 0, LVar0, LVar1, LVar2)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_WAIT(10)
|
||||||
|
EVT_LOOP(5)
|
||||||
|
EVT_IF_NE(LVar9, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVar9, -2, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarA, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarA, -1, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarB, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarB, 2, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_NE(LVar9, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVar9, 2, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarA, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarA, 1, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarB, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarB, -2, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_IF_NE(LVar9, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVar9, 0, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarA, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarA, 0, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_NE(LVarB, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarB, 0, 0, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_SETF(LVar0, EVT_FLOAT(-15.0))
|
||||||
|
EVT_SETF(LVar1, EVT_FLOAT(0.0))
|
||||||
|
EVT_LOOP(100)
|
||||||
|
EVT_CALL(N(PullVine_UpdatePosition), LVar0, EVT_FLOAT(20.0), LVar2)
|
||||||
|
EVT_ADDF(LVar1, LVar2)
|
||||||
|
EVT_MULF(LVar1, EVT_FLOAT(0.93))
|
||||||
|
EVT_ADDF(LVar0, LVar1)
|
||||||
|
EVT_CALL(TranslateModel, LVarD, 0, LVar0, 0)
|
||||||
|
EVT_CALL(TranslateModel, LVarE, 0, LVar0, 0)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(DisablePlayerPhysics, FALSE)
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
@ -2,44 +2,49 @@
|
|||||||
#define _WORLD_AREA_JAN_JAN_H_
|
#define _WORLD_AREA_JAN_JAN_H_
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
AB_JAN_Unused_0 = AreaByte(0),
|
AB_JAN22_ZiplineNpc1 = AreaByte(0),
|
||||||
AB_JAN_Unused_1 = AreaByte(1),
|
AB_JAN22_ZiplineNpc2 = AreaByte(1),
|
||||||
AB_JAN_Unused_2 = AreaByte(2),
|
AB_JAN_2 = AreaByte(2),
|
||||||
AB_JAN_Unused_3 = AreaByte(3),
|
AB_JAN13_LastPuzzleProgress = AreaByte(3),
|
||||||
AB_JAN_Unused_4 = AreaByte(4),
|
AB_JAN_Unused_4 = AreaByte(4),
|
||||||
AB_JAN_Unused_5 = AreaByte(5),
|
AB_JAN_Unused_5 = AreaByte(5),
|
||||||
AB_JAN_Unused_6 = AreaByte(6),
|
AB_JAN_Unused_6 = AreaByte(6),
|
||||||
AB_JAN_Unused_7 = AreaByte(7),
|
AB_JAN_Unused_7 = AreaByte(7),
|
||||||
AB_JAN_Unused_8 = AreaByte(8),
|
AB_JAN_Unused_8 = AreaByte(8),
|
||||||
AB_JAN_Unused_9 = AreaByte(9),
|
AB_JAN_Unused_9 = AreaByte(9),
|
||||||
AB_JAN_Unused_A = AreaByte(10),
|
AB_JAN_Unused_A = AreaByte(10),
|
||||||
AB_JAN_Unused_B = AreaByte(11),
|
AB_JAN_Unused_B = AreaByte(11),
|
||||||
AB_JAN_Unused_C = AreaByte(12),
|
AB_JAN_Unused_C = AreaByte(12),
|
||||||
AB_JAN_Unused_D = AreaByte(13),
|
AB_JAN_Unused_D = AreaByte(13),
|
||||||
AB_JAN_Unused_E = AreaByte(14),
|
AB_JAN_Unused_E = AreaByte(14),
|
||||||
AB_JAN_Unused_F = AreaByte(15),
|
AB_JAN_Unused_F = AreaByte(15),
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
AF_JAN_03 = AreaFlag(3),
|
AF_JAN_02 = AreaFlag(2),
|
||||||
AF_JAN02_RaphaelComment = AreaFlag(4),
|
AF_JAN_03 = AreaFlag(3),
|
||||||
AF_JAN02_MetCouncillor = AreaFlag(5),
|
AF_JAN02_RaphaelComment = AreaFlag(4),
|
||||||
AF_JAN_06 = AreaFlag(6),
|
AF_JAN02_MetCouncillor = AreaFlag(5),
|
||||||
AF_JAN_07 = AreaFlag(7),
|
AF_JAN_06 = AreaFlag(6),
|
||||||
AF_JAN01_KoloradoShouting = AreaFlag(9),
|
AF_JAN_07 = AreaFlag(7),
|
||||||
AF_JAN00_TreeDrop1 = AreaFlag(13),
|
AF_JAN_08 = AreaFlag(8),
|
||||||
|
AF_JAN01_KoloradoShouting = AreaFlag(9),
|
||||||
|
AF_JAN_0A = AreaFlag(10),
|
||||||
|
AF_JAN22_MisstarReleasedParty = AreaFlag(11),
|
||||||
|
AF_JAN22_MisstarReleasedKolorado = AreaFlag(12),
|
||||||
|
AF_JAN00_TreeDrop1 = AreaFlag(13),
|
||||||
|
|
||||||
AF_JAN01_TreeDrop2 = AreaFlag(14),
|
AF_JAN01_TreeDrop2 = AreaFlag(14),
|
||||||
AF_JAN01_TreeDrop3 = AreaFlag(15),
|
AF_JAN01_TreeDrop3 = AreaFlag(15),
|
||||||
AF_JAN01_TreeDrop4 = AreaFlag(16),
|
AF_JAN01_TreeDrop4 = AreaFlag(16),
|
||||||
AF_JAN01_TreeDrop5 = AreaFlag(17),
|
AF_JAN01_TreeDrop5 = AreaFlag(17),
|
||||||
AF_JAN01_TreeDrop6 = AreaFlag(18),
|
AF_JAN01_TreeDrop6 = AreaFlag(18),
|
||||||
AF_JAN01_TreeDrop7 = AreaFlag(19),
|
AF_JAN01_TreeDrop7 = AreaFlag(19),
|
||||||
|
|
||||||
AF_JAN02_TreeDrop2 = AreaFlag(20),
|
AF_JAN02_TreeDrop2 = AreaFlag(20),
|
||||||
AF_JAN02_TreeDrop3 = AreaFlag(21),
|
AF_JAN02_TreeDrop3 = AreaFlag(21),
|
||||||
AF_JAN_16 = AreaFlag(22),
|
AF_JAN_16 = AreaFlag(22),
|
||||||
AF_JAN03_TreeDrop1 = AreaFlag(23),
|
AF_JAN03_TreeDrop1 = AreaFlag(23),
|
||||||
};
|
};
|
||||||
|
|
||||||
extern MapSettings jan_00_settings;
|
extern MapSettings jan_00_settings;
|
||||||
|
@ -9,11 +9,6 @@
|
|||||||
#include "mapfs/jan_00_shape.h"
|
#include "mapfs/jan_00_shape.h"
|
||||||
#include "mapfs/jan_00_hit.h"
|
#include "mapfs/jan_00_hit.h"
|
||||||
|
|
||||||
#include "sprite/npc/HeartPlant.h"
|
|
||||||
#include "sprite/npc/WorldParakarry.h"
|
|
||||||
#include "sprite/npc/Kolorado.h"
|
|
||||||
#include "sprite/npc/JrTroopa.h"
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
NPC_Whale = 0,
|
NPC_Whale = 0,
|
||||||
NPC_Kolorado_02 = 1,
|
NPC_Kolorado_02 = 1,
|
||||||
@ -26,3 +21,5 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define NAMESPACE jan_00
|
#define NAMESPACE jan_00
|
||||||
|
|
||||||
|
extern EvtScript N(D_80245860_B25DA0);
|
||||||
|
@ -2,72 +2,15 @@
|
|||||||
#include "effects.h"
|
#include "effects.h"
|
||||||
#include "npc.h"
|
#include "npc.h"
|
||||||
|
|
||||||
extern EvtScript N(D_80245860_B25DA0);
|
|
||||||
extern EvtScript N(EVS_NpcInteract_HeartPlant_01);
|
|
||||||
|
|
||||||
#include "world/common/todo/HeartPlant_SpawnHeart.inc.c"
|
|
||||||
|
|
||||||
NpcSettings N(NpcSettings_Kolorado_01) = {
|
NpcSettings N(NpcSettings_Kolorado_01) = {
|
||||||
.height = 24,
|
.height = 24,
|
||||||
.radius = 48,
|
.radius = 48,
|
||||||
.level = 99,
|
.level = 99,
|
||||||
};
|
};
|
||||||
|
|
||||||
NpcSettings N(NpcSettings_Kolorado_02) = {
|
#include "world/common/npc/Kolorado.inc.c"
|
||||||
.height = 40,
|
#include "world/common/npc/JrTroopa.inc.c"
|
||||||
.radius = 24,
|
#include "world/common/enemy/complete/HeartPlant.inc.c"
|
||||||
.level = 99,
|
|
||||||
};
|
|
||||||
|
|
||||||
NpcSettings N(NpcSettings_JrTroopa) = {
|
|
||||||
.height = 32,
|
|
||||||
.radius = 24,
|
|
||||||
.level = 99,
|
|
||||||
};
|
|
||||||
|
|
||||||
EvtScript N(EVS_NpcAuxAI_HeartPlant_01) = {
|
|
||||||
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
|
|
||||||
EVT_CALL(SetSelfVar, 0, 0)
|
|
||||||
EVT_CALL(SetSelfVar, 1, 0)
|
|
||||||
EVT_RETURN
|
|
||||||
EVT_END
|
|
||||||
};
|
|
||||||
|
|
||||||
EvtScript N(D_80242260_B227A0) = {
|
|
||||||
EVT_WAIT(45)
|
|
||||||
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(EVS_NpcInteract_HeartPlant_01)))
|
|
||||||
EVT_RETURN
|
|
||||||
EVT_END
|
|
||||||
};
|
|
||||||
|
|
||||||
EvtScript N(EVS_NpcInteract_HeartPlant_01) = {
|
|
||||||
EVT_CALL(GetSelfVar, 1, LVar0)
|
|
||||||
EVT_IF_EQ(LVar0, 0)
|
|
||||||
EVT_CALL(SetSelfVar, 1, 1)
|
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2099, SOUND_SPACE_MODE_0)
|
|
||||||
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_HeartPlant_Anim00)
|
|
||||||
EVT_WAIT(1)
|
|
||||||
EVT_CALL(N(HeartPlant_SpawnHeart))
|
|
||||||
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_HeartPlant_Anim01)
|
|
||||||
EVT_THREAD
|
|
||||||
EVT_CALL(BindNpcInteract, NPC_SELF, 0)
|
|
||||||
EVT_EXEC(N(D_80242260_B227A0))
|
|
||||||
EVT_WAIT(45)
|
|
||||||
EVT_CALL(SetSelfVar, 1, 0)
|
|
||||||
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_HeartPlant_Anim00)
|
|
||||||
EVT_END_THREAD
|
|
||||||
EVT_END_IF
|
|
||||||
EVT_RETURN
|
|
||||||
EVT_END
|
|
||||||
};
|
|
||||||
|
|
||||||
NpcSettings N(NpcSettings_HeartPlant_01) = {
|
|
||||||
.height = 20,
|
|
||||||
.radius = 28,
|
|
||||||
.level = 99,
|
|
||||||
.otherAI = &N(EVS_NpcAuxAI_HeartPlant_01),
|
|
||||||
.onInteract = &N(EVS_NpcInteract_HeartPlant_01),
|
|
||||||
};
|
|
||||||
|
|
||||||
#include "world/common/complete/LetterDelivery.inc.c"
|
#include "world/common/complete/LetterDelivery.inc.c"
|
||||||
|
|
||||||
@ -653,7 +596,7 @@ EvtScript N(EVS_NpcIdle_JrTroopa) = {
|
|||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_JrTroopa_Panic)
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_JrTroopa_Panic)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_262, SOUND_SPACE_MODE_0)
|
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_262, SOUND_SPACE_MODE_0)
|
||||||
EVT_CALL(ShowEmote, NPC_SELF, EMOTE_EXCLAMATION, 0, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_SELF, EMOTE_EXCLAMATION, 0, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_CALL(NpcJump0, NPC_SELF, 250, 0, 90, 10)
|
EVT_CALL(NpcJump0, NPC_SELF, 250, 0, 90, 10)
|
||||||
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_JrTroopa_Panic, ANIM_JrTroopa_Panic, 0, MSG_CH5_000B)
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_JrTroopa_Panic, ANIM_JrTroopa_Panic, 0, MSG_CH5_000B)
|
||||||
@ -695,7 +638,7 @@ EvtScript N(EVS_NpcInit_JrTroopa) = {
|
|||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(D_8024488C_B24DCC)[] = {
|
StaticNpc N(NpcData_Characters)[] = {
|
||||||
{
|
{
|
||||||
.id = NPC_Whale,
|
.id = NPC_Whale,
|
||||||
.settings = &N(NpcSettings_Kolorado_01),
|
.settings = &N(NpcSettings_Kolorado_01),
|
||||||
@ -703,61 +646,19 @@ StaticNpc N(D_8024488C_B24DCC)[] = {
|
|||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_200 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_200 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Kolorado_01),
|
.init = &N(EVS_NpcInit_Kolorado_01),
|
||||||
.drops = {
|
.drops = NPC_NO_DROPS,
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.animations = KOLORADO_ANIMS,
|
||||||
.heartDrops = NO_DROPS,
|
|
||||||
.flowerDrops = NO_DROPS,
|
|
||||||
},
|
|
||||||
.animations = {
|
|
||||||
.idle = ANIM_Kolorado_Idle,
|
|
||||||
.walk = ANIM_Kolorado_Walk,
|
|
||||||
.run = ANIM_Kolorado_Run,
|
|
||||||
.chase = ANIM_Kolorado_Run,
|
|
||||||
.anim_4 = ANIM_Kolorado_Idle,
|
|
||||||
.anim_5 = ANIM_Kolorado_Idle,
|
|
||||||
.death = ANIM_Kolorado_Idle,
|
|
||||||
.hit = ANIM_Kolorado_Idle,
|
|
||||||
.anim_8 = ANIM_Kolorado_Idle,
|
|
||||||
.anim_9 = ANIM_Kolorado_Idle,
|
|
||||||
.anim_A = ANIM_Kolorado_Idle,
|
|
||||||
.anim_B = ANIM_Kolorado_Idle,
|
|
||||||
.anim_C = ANIM_Kolorado_Idle,
|
|
||||||
.anim_D = ANIM_Kolorado_Idle,
|
|
||||||
.anim_E = ANIM_Kolorado_Idle,
|
|
||||||
.anim_F = ANIM_Kolorado_Idle,
|
|
||||||
},
|
|
||||||
.tattle = MSG_NpcTattle_Whale,
|
.tattle = MSG_NpcTattle_Whale,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.id = NPC_Kolorado_02,
|
.id = NPC_Kolorado_02,
|
||||||
.settings = &N(NpcSettings_Kolorado_02),
|
.settings = &N(NpcSettings_Kolorado),
|
||||||
.pos = { NPC_DISPOSE_LOCATION },
|
.pos = { NPC_DISPOSE_LOCATION },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Kolorado_02),
|
.init = &N(EVS_NpcInit_Kolorado_02),
|
||||||
.drops = {
|
.drops = NPC_NO_DROPS,
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.animations = KOLORADO_ANIMS,
|
||||||
.heartDrops = NO_DROPS,
|
|
||||||
.flowerDrops = NO_DROPS,
|
|
||||||
},
|
|
||||||
.animations = {
|
|
||||||
.idle = ANIM_Kolorado_Idle,
|
|
||||||
.walk = ANIM_Kolorado_Walk,
|
|
||||||
.run = ANIM_Kolorado_Run,
|
|
||||||
.chase = ANIM_Kolorado_Run,
|
|
||||||
.anim_4 = ANIM_Kolorado_Idle,
|
|
||||||
.anim_5 = ANIM_Kolorado_Idle,
|
|
||||||
.death = ANIM_Kolorado_Idle,
|
|
||||||
.hit = ANIM_Kolorado_Idle,
|
|
||||||
.anim_8 = ANIM_Kolorado_Idle,
|
|
||||||
.anim_9 = ANIM_Kolorado_Idle,
|
|
||||||
.anim_A = ANIM_Kolorado_Idle,
|
|
||||||
.anim_B = ANIM_Kolorado_Idle,
|
|
||||||
.anim_C = ANIM_Kolorado_Idle,
|
|
||||||
.anim_D = ANIM_Kolorado_Idle,
|
|
||||||
.anim_E = ANIM_Kolorado_Idle,
|
|
||||||
.anim_F = ANIM_Kolorado_Idle,
|
|
||||||
},
|
|
||||||
.tattle = MSG_NpcTattle_Kolorado,
|
.tattle = MSG_NpcTattle_Kolorado,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -767,198 +668,72 @@ StaticNpc N(D_8024488C_B24DCC)[] = {
|
|||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_JrTroopa),
|
.init = &N(EVS_NpcInit_JrTroopa),
|
||||||
.drops = {
|
.drops = NPC_NO_DROPS,
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.animations = JR_TROOPA_ANIMS,
|
||||||
.heartDrops = NO_DROPS,
|
|
||||||
.flowerDrops = NO_DROPS,
|
|
||||||
},
|
|
||||||
.animations = {
|
|
||||||
.idle = ANIM_JrTroopa_Idle,
|
|
||||||
.walk = ANIM_JrTroopa_Walk,
|
|
||||||
.run = ANIM_JrTroopa_Walk,
|
|
||||||
.chase = ANIM_JrTroopa_Walk,
|
|
||||||
.anim_4 = ANIM_JrTroopa_Idle,
|
|
||||||
.anim_5 = ANIM_JrTroopa_Idle,
|
|
||||||
.death = ANIM_JrTroopa_Idle,
|
|
||||||
.hit = ANIM_JrTroopa_Idle,
|
|
||||||
.anim_8 = ANIM_JrTroopa_Idle,
|
|
||||||
.anim_9 = ANIM_JrTroopa_Idle,
|
|
||||||
.anim_A = ANIM_JrTroopa_Idle,
|
|
||||||
.anim_B = ANIM_JrTroopa_Idle,
|
|
||||||
.anim_C = ANIM_JrTroopa_Idle,
|
|
||||||
.anim_D = ANIM_JrTroopa_Idle,
|
|
||||||
.anim_E = ANIM_JrTroopa_Idle,
|
|
||||||
.anim_F = ANIM_JrTroopa_Idle,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(D_80244E5C_B2539C) = {
|
StaticNpc N(NpcData_HeartPlant_01) = {
|
||||||
.id = NPC_HeartPlant_01,
|
.id = NPC_HeartPlant_01,
|
||||||
.settings = &N(NpcSettings_HeartPlant_01),
|
.settings = &N(NpcSettings_HeartPlant),
|
||||||
.pos = { 455.0f, 0.0f, 115.0f },
|
.pos = { 455.0f, 0.0f, 115.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
||||||
.drops = {
|
.drops = NPC_NO_DROPS,
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.animations = HEART_PLANT_ANIMS,
|
||||||
.heartDrops = NO_DROPS,
|
|
||||||
.flowerDrops = NO_DROPS,
|
|
||||||
},
|
|
||||||
.animations = {
|
|
||||||
.idle = ANIM_HeartPlant_Anim00,
|
|
||||||
.walk = ANIM_HeartPlant_Anim00,
|
|
||||||
.run = ANIM_HeartPlant_Anim00,
|
|
||||||
.chase = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_4 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_5 = ANIM_HeartPlant_Anim00,
|
|
||||||
.death = ANIM_HeartPlant_Anim00,
|
|
||||||
.hit = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_8 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_9 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_A = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_B = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_C = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_D = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_E = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_F = ANIM_HeartPlant_Anim00,
|
|
||||||
},
|
|
||||||
.tattle = MSG_NpcTattle_HeartPlant,
|
.tattle = MSG_NpcTattle_HeartPlant,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(D_8024504C_B2558C) = {
|
StaticNpc N(NpcData_HeartPlant_02) = {
|
||||||
.id = NPC_HeartPlant_02,
|
.id = NPC_HeartPlant_02,
|
||||||
.settings = &N(NpcSettings_HeartPlant_01),
|
.settings = &N(NpcSettings_HeartPlant),
|
||||||
.pos = { 167.0f, 0.0f, 404.0f },
|
.pos = { 167.0f, 0.0f, 404.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
||||||
.drops = {
|
.drops = NPC_NO_DROPS,
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.animations = HEART_PLANT_ANIMS,
|
||||||
.heartDrops = NO_DROPS,
|
|
||||||
.flowerDrops = NO_DROPS,
|
|
||||||
},
|
|
||||||
.animations = {
|
|
||||||
.idle = ANIM_HeartPlant_Anim00,
|
|
||||||
.walk = ANIM_HeartPlant_Anim00,
|
|
||||||
.run = ANIM_HeartPlant_Anim00,
|
|
||||||
.chase = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_4 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_5 = ANIM_HeartPlant_Anim00,
|
|
||||||
.death = ANIM_HeartPlant_Anim00,
|
|
||||||
.hit = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_8 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_9 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_A = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_B = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_C = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_D = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_E = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_F = ANIM_HeartPlant_Anim00,
|
|
||||||
},
|
|
||||||
.tattle = MSG_NpcTattle_HeartPlant,
|
.tattle = MSG_NpcTattle_HeartPlant,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(D_8024523C_B2577C) = {
|
StaticNpc N(NpcData_HeartPlant_03) = {
|
||||||
.id = NPC_HeartPlant_03,
|
.id = NPC_HeartPlant_03,
|
||||||
.settings = &N(NpcSettings_HeartPlant_01),
|
.settings = &N(NpcSettings_HeartPlant),
|
||||||
.pos = { 90.0f, 0.0f, 316.0f },
|
.pos = { 90.0f, 0.0f, 316.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
||||||
.drops = {
|
.drops = NPC_NO_DROPS,
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.animations = HEART_PLANT_ANIMS,
|
||||||
.heartDrops = NO_DROPS,
|
|
||||||
.flowerDrops = NO_DROPS,
|
|
||||||
},
|
|
||||||
.animations = {
|
|
||||||
.idle = ANIM_HeartPlant_Anim00,
|
|
||||||
.walk = ANIM_HeartPlant_Anim00,
|
|
||||||
.run = ANIM_HeartPlant_Anim00,
|
|
||||||
.chase = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_4 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_5 = ANIM_HeartPlant_Anim00,
|
|
||||||
.death = ANIM_HeartPlant_Anim00,
|
|
||||||
.hit = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_8 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_9 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_A = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_B = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_C = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_D = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_E = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_F = ANIM_HeartPlant_Anim00,
|
|
||||||
},
|
|
||||||
.tattle = MSG_NpcTattle_HeartPlant,
|
.tattle = MSG_NpcTattle_HeartPlant,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(D_8024542C_B2596C) = {
|
StaticNpc N(NpcData_HeartPlant_04) = {
|
||||||
.id = NPC_HeartPlant_04,
|
.id = NPC_HeartPlant_04,
|
||||||
.settings = &N(NpcSettings_HeartPlant_01),
|
.settings = &N(NpcSettings_HeartPlant),
|
||||||
.pos = { 424.0f, 0.0f, 182.0f },
|
.pos = { 424.0f, 0.0f, 182.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
||||||
.drops = {
|
.drops = NPC_NO_DROPS,
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.animations = HEART_PLANT_ANIMS,
|
||||||
.heartDrops = NO_DROPS,
|
|
||||||
.flowerDrops = NO_DROPS,
|
|
||||||
},
|
|
||||||
.animations = {
|
|
||||||
.idle = ANIM_HeartPlant_Anim00,
|
|
||||||
.walk = ANIM_HeartPlant_Anim00,
|
|
||||||
.run = ANIM_HeartPlant_Anim00,
|
|
||||||
.chase = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_4 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_5 = ANIM_HeartPlant_Anim00,
|
|
||||||
.death = ANIM_HeartPlant_Anim00,
|
|
||||||
.hit = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_8 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_9 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_A = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_B = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_C = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_D = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_E = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_F = ANIM_HeartPlant_Anim00,
|
|
||||||
},
|
|
||||||
.tattle = MSG_NpcTattle_HeartPlant,
|
.tattle = MSG_NpcTattle_HeartPlant,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(D_8024561C_B25B5C) = {
|
StaticNpc N(NpcData_HeartPlant_05) = {
|
||||||
.id = NPC_HeartPlant_05,
|
.id = NPC_HeartPlant_05,
|
||||||
.settings = &N(NpcSettings_HeartPlant_01),
|
.settings = &N(NpcSettings_HeartPlant),
|
||||||
.pos = { 143.0f, 0.0f, 260.0f },
|
.pos = { 143.0f, 0.0f, 260.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_100 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
||||||
.drops = {
|
.drops = NPC_NO_DROPS,
|
||||||
.dropFlags = NPC_DROP_FLAG_80,
|
.animations = HEART_PLANT_ANIMS,
|
||||||
.heartDrops = NO_DROPS,
|
|
||||||
.flowerDrops = NO_DROPS,
|
|
||||||
},
|
|
||||||
.animations = {
|
|
||||||
.idle = ANIM_HeartPlant_Anim00,
|
|
||||||
.walk = ANIM_HeartPlant_Anim00,
|
|
||||||
.run = ANIM_HeartPlant_Anim00,
|
|
||||||
.chase = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_4 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_5 = ANIM_HeartPlant_Anim00,
|
|
||||||
.death = ANIM_HeartPlant_Anim00,
|
|
||||||
.hit = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_8 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_9 = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_A = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_B = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_C = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_D = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_E = ANIM_HeartPlant_Anim00,
|
|
||||||
.anim_F = ANIM_HeartPlant_Anim00,
|
|
||||||
},
|
|
||||||
.tattle = MSG_NpcTattle_HeartPlant,
|
.tattle = MSG_NpcTattle_HeartPlant,
|
||||||
};
|
};
|
||||||
|
|
||||||
NpcGroupList N(DefaultNPCs) = {
|
NpcGroupList N(DefaultNPCs) = {
|
||||||
NPC_GROUP(N(D_8024488C_B24DCC)),
|
NPC_GROUP(N(NpcData_Characters)),
|
||||||
NPC_GROUP(N(D_80244E5C_B2539C)),
|
NPC_GROUP(N(NpcData_HeartPlant_01)),
|
||||||
NPC_GROUP(N(D_8024504C_B2558C)),
|
NPC_GROUP(N(NpcData_HeartPlant_02)),
|
||||||
NPC_GROUP(N(D_8024523C_B2577C)),
|
NPC_GROUP(N(NpcData_HeartPlant_03)),
|
||||||
NPC_GROUP(N(D_8024542C_B2596C)),
|
NPC_GROUP(N(NpcData_HeartPlant_04)),
|
||||||
NPC_GROUP(N(D_8024561C_B25B5C)),
|
NPC_GROUP(N(NpcData_HeartPlant_05)),
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
@ -9,19 +9,16 @@
|
|||||||
#include "mapfs/jan_01_shape.h"
|
#include "mapfs/jan_01_shape.h"
|
||||||
#include "mapfs/jan_01_hit.h"
|
#include "mapfs/jan_01_hit.h"
|
||||||
|
|
||||||
#include "sprite/npc/Kolorado.h"
|
|
||||||
#include "sprite/npc/Fuzzy.h"
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
NPC_Kolorado = 0,
|
NPC_Kolorado = 0,
|
||||||
NPC_Fuzzy_01 = 1,
|
NPC_JungleFuzzy_01 = 1,
|
||||||
NPC_Fuzzy_02 = 2,
|
NPC_JungleFuzzy_02 = 2,
|
||||||
NPC_Fuzzy_03 = 3,
|
NPC_JungleFuzzy_03 = 3,
|
||||||
NPC_Fuzzy_04 = 4,
|
NPC_JungleFuzzy_04 = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
AF_JAN01_TreeDrop_StarPiece = MapFlag(10),
|
AF_JAN01_TreeDrop_StarPiece = MapFlag(10),
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NAMESPACE jan_01
|
#define NAMESPACE jan_01
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include "effects.h"
|
#include "effects.h"
|
||||||
|
|
||||||
#include "world/common/enemy/complete/JungleFuzzy_Wander.inc.c"
|
#include "world/common/enemy/complete/JungleFuzzy_Wander.inc.c"
|
||||||
#include "world/common/enemy/complete/Fuzzy.inc.c"
|
#include "world/common/enemy/complete/JungleFuzzy.inc.c"
|
||||||
#include "world/common/npc/Kolorado.inc.c"
|
#include "world/common/npc/Kolorado.inc.c"
|
||||||
#include "world/common/todo/SetCamera0Flag1000.inc.c"
|
#include "world/common/todo/SetCamera0Flag1000.inc.c"
|
||||||
#include "world/common/todo/UnsetCamera0Flag1000.inc.c"
|
#include "world/common/todo/UnsetCamera0Flag1000.inc.c"
|
||||||
@ -49,7 +49,7 @@ EvtScript N(EVS_NpcIdle_Kolorado) = {
|
|||||||
EVT_CALL(PlaySoundAtPlayer, SOUND_262, 0)
|
EVT_CALL(PlaySoundAtPlayer, SOUND_262, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_Kolorado, EMOTE_EXCLAMATION, 0, 25, FALSE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_Kolorado, EMOTE_EXCLAMATION, 0, 25, FALSE, 0, 0, 0, 0)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_PARTNER, SOUND_262, 0)
|
EVT_CALL(PlaySoundAtNpc, NPC_PARTNER, SOUND_262, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_PARTNER, EMOTE_EXCLAMATION, 0, 25, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_PARTNER, EMOTE_EXCLAMATION, 0, 25, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(25)
|
EVT_WAIT(25)
|
||||||
EVT_CALL(DisablePlayerInput, FALSE)
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
@ -63,7 +63,7 @@ EvtScript N(EVS_NpcIdle_Kolorado) = {
|
|||||||
EVT_CALL(InterruptUsePartner)
|
EVT_CALL(InterruptUsePartner)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(DisablePlayerInput, TRUE)
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
EVT_CALL(RemoveNpc, NPC_Fuzzy_01)
|
EVT_CALL(RemoveNpc, NPC_JungleFuzzy_01)
|
||||||
EVT_CALL(ShowMessageAtScreenPos, MSG_CH5_0010, 0, 60)
|
EVT_CALL(ShowMessageAtScreenPos, MSG_CH5_0010, 0, 60)
|
||||||
EVT_CALL(InterpPlayerYaw, 270, 4)
|
EVT_CALL(InterpPlayerYaw, 270, 4)
|
||||||
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Kolorado_Panic)
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Kolorado_Panic)
|
||||||
@ -152,7 +152,7 @@ EvtScript N(EVS_NpcInit_Kolorado) = {
|
|||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(EVS_NpcIdle_Fuzzy_01) = {
|
EvtScript N(EVS_NpcIdle_JungleFuzzy_01) = {
|
||||||
EVT_CHILD_THREAD
|
EVT_CHILD_THREAD
|
||||||
EVT_CALL(GetNpcPos, NPC_Kolorado, LVar3, LVar1, LVar2)
|
EVT_CALL(GetNpcPos, NPC_Kolorado, LVar3, LVar1, LVar2)
|
||||||
EVT_SET(LVar4, LVar3)
|
EVT_SET(LVar4, LVar3)
|
||||||
@ -206,7 +206,7 @@ EvtScript N(EVS_NpcIdle_Fuzzy_01) = {
|
|||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(EVS_NpcDefeat_FuzzyBoss) = {
|
EvtScript N(EVS_NpcDefeat_JungleFuzzyBoss) = {
|
||||||
EVT_CALL(GetBattleOutcome, LVar0)
|
EVT_CALL(GetBattleOutcome, LVar0)
|
||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
EVT_CASE_EQ(OUTCOME_PLAYER_WON)
|
EVT_CASE_EQ(OUTCOME_PLAYER_WON)
|
||||||
@ -256,12 +256,12 @@ EvtScript N(EVS_NpcDefeat_FuzzyBoss) = {
|
|||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(EVS_NpcInit_Fuzzy_01) = {
|
EvtScript N(EVS_NpcInit_JungleFuzzy_01) = {
|
||||||
EVT_IF_LT(GB_StoryProgress, STORY_CH5_KOLORADO_ESCAPED_FUZZIES)
|
EVT_IF_LT(GB_StoryProgress, STORY_CH5_KOLORADO_ESCAPED_FUZZIES)
|
||||||
EVT_CALL(SetSelfVar, 0, 0)
|
EVT_CALL(SetSelfVar, 0, 0)
|
||||||
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Fuzzy_Jungle_Anim04)
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Fuzzy_Jungle_Anim04)
|
||||||
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Fuzzy_01)))
|
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_JungleFuzzy_01)))
|
||||||
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_FuzzyBoss)))
|
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_JungleFuzzyBoss)))
|
||||||
EVT_ELSE
|
EVT_ELSE
|
||||||
EVT_CALL(RemoveNpc, NPC_SELF)
|
EVT_CALL(RemoveNpc, NPC_SELF)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -281,18 +281,18 @@ StaticNpc N(NpcData_Kolorado) = {
|
|||||||
.tattle = MSG_NpcTattle_Kolorado,
|
.tattle = MSG_NpcTattle_Kolorado,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(NpcData_Fuzzy_01) = {
|
StaticNpc N(NpcData_JungleFuzzy_01) = {
|
||||||
.id = NPC_Fuzzy_01,
|
.id = NPC_JungleFuzzy_01,
|
||||||
.settings = &N(NpcSettings_Fuzzy),
|
.settings = &N(NpcSettings_JungleFuzzy),
|
||||||
.pos = { -30.0f, 0.0f, 90.0f },
|
.pos = { -30.0f, 0.0f, 90.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_40000 | ENEMY_FLAG_200000 | ENEMY_FLAG_400000 | ENEMY_FLAG_NO_DROPS,
|
.flags = ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_40000 | ENEMY_FLAG_200000 | ENEMY_FLAG_400000 | ENEMY_FLAG_NO_DROPS,
|
||||||
.init = &N(EVS_NpcInit_Fuzzy_01),
|
.init = &N(EVS_NpcInit_JungleFuzzy_01),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = JUNGLE_FUZZY_ANIMS,
|
.animations = JUNGLE_FUZZY_ANIMS,
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(EVS_NpcInit_Fuzzy_02) = {
|
EvtScript N(EVS_NpcInit_JungleFuzzy_02) = {
|
||||||
EVT_IF_LT(GB_StoryProgress, STORY_CH5_KOLORADO_ESCAPED_FUZZIES)
|
EVT_IF_LT(GB_StoryProgress, STORY_CH5_KOLORADO_ESCAPED_FUZZIES)
|
||||||
EVT_CALL(RemoveNpc, NPC_SELF)
|
EVT_CALL(RemoveNpc, NPC_SELF)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -300,13 +300,13 @@ EvtScript N(EVS_NpcInit_Fuzzy_02) = {
|
|||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(NpcData_Fuzzy_02) = {
|
StaticNpc N(NpcData_JungleFuzzy_02) = {
|
||||||
.id = NPC_Fuzzy_02,
|
.id = NPC_JungleFuzzy_02,
|
||||||
.settings = &N(NpcSettings_JungleFuzzy_Wander),
|
.settings = &N(NpcSettings_JungleFuzzy_Wander),
|
||||||
.pos = { -350.0f, 3.0f, 40.0f },
|
.pos = { -350.0f, 3.0f, 40.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_400 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_400 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Fuzzy_02),
|
.init = &N(EVS_NpcInit_JungleFuzzy_02),
|
||||||
.drops = JUNGLE_FUZZY_DROPS,
|
.drops = JUNGLE_FUZZY_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
.wander = {
|
.wander = {
|
||||||
@ -324,13 +324,13 @@ StaticNpc N(NpcData_Fuzzy_02) = {
|
|||||||
.aiDetectFlags = AI_DETECT_SENSITIVE_MOTION,
|
.aiDetectFlags = AI_DETECT_SENSITIVE_MOTION,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(NpcData_Fuzzy_03) = {
|
StaticNpc N(NpcData_JungleFuzzy_03) = {
|
||||||
.id = NPC_Fuzzy_03,
|
.id = NPC_JungleFuzzy_03,
|
||||||
.settings = &N(NpcSettings_JungleFuzzy_Wander),
|
.settings = &N(NpcSettings_JungleFuzzy_Wander),
|
||||||
.pos = { 0.0f, -10.0f, 110.0f },
|
.pos = { 0.0f, -10.0f, 110.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_400 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_400 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Fuzzy_02),
|
.init = &N(EVS_NpcInit_JungleFuzzy_02),
|
||||||
.drops = JUNGLE_FUZZY_DROPS,
|
.drops = JUNGLE_FUZZY_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
.wander = {
|
.wander = {
|
||||||
@ -348,13 +348,13 @@ StaticNpc N(NpcData_Fuzzy_03) = {
|
|||||||
.aiDetectFlags = AI_DETECT_SENSITIVE_MOTION,
|
.aiDetectFlags = AI_DETECT_SENSITIVE_MOTION,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticNpc N(NpcData_Fuzzy_04) = {
|
StaticNpc N(NpcData_JungleFuzzy_04) = {
|
||||||
.id = NPC_Fuzzy_04,
|
.id = NPC_JungleFuzzy_04,
|
||||||
.settings = &N(NpcSettings_JungleFuzzy_Wander),
|
.settings = &N(NpcSettings_JungleFuzzy_Wander),
|
||||||
.pos = { 350.0f, 3.0f, 40.0f },
|
.pos = { 350.0f, 3.0f, 40.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_400 | ENEMY_FLAG_400000,
|
.flags = ENEMY_FLAG_400 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Fuzzy_02),
|
.init = &N(EVS_NpcInit_JungleFuzzy_02),
|
||||||
.drops = JUNGLE_FUZZY_DROPS,
|
.drops = JUNGLE_FUZZY_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
.wander = {
|
.wander = {
|
||||||
@ -374,9 +374,9 @@ StaticNpc N(NpcData_Fuzzy_04) = {
|
|||||||
|
|
||||||
NpcGroupList N(DefaultNPCs) = {
|
NpcGroupList N(DefaultNPCs) = {
|
||||||
NPC_GROUP(N(NpcData_Kolorado)),
|
NPC_GROUP(N(NpcData_Kolorado)),
|
||||||
NPC_GROUP(N(NpcData_Fuzzy_01), BTL_JAN_FORMATION_0A, BTL_JAN_STAGE_00),
|
NPC_GROUP(N(NpcData_JungleFuzzy_01), BTL_JAN_FORMATION_0A, BTL_JAN_STAGE_00),
|
||||||
NPC_GROUP(N(NpcData_Fuzzy_02), BTL_JAN_FORMATION_0A, BTL_JAN_STAGE_00),
|
NPC_GROUP(N(NpcData_JungleFuzzy_02), BTL_JAN_FORMATION_0A, BTL_JAN_STAGE_00),
|
||||||
NPC_GROUP(N(NpcData_Fuzzy_03), BTL_JAN_FORMATION_0B, BTL_JAN_STAGE_00),
|
NPC_GROUP(N(NpcData_JungleFuzzy_03), BTL_JAN_FORMATION_0B, BTL_JAN_STAGE_00),
|
||||||
NPC_GROUP(N(NpcData_Fuzzy_04), BTL_JAN_FORMATION_0A, BTL_JAN_STAGE_00),
|
NPC_GROUP(N(NpcData_JungleFuzzy_04), BTL_JAN_FORMATION_0A, BTL_JAN_STAGE_00),
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
@ -394,7 +394,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_Yoshi),
|
.settings = &N(NpcSettings_Yoshi),
|
||||||
.pos = { 323.0f, 30.0f, 412.0f },
|
.pos = { 323.0f, 30.0f, 412.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_VillageLeader),
|
.init = &N(EVS_NpcInit_VillageLeader),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = YOSHI_LEADER_ANIMS,
|
.animations = YOSHI_LEADER_ANIMS,
|
||||||
@ -405,7 +405,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_Yoshi),
|
.settings = &N(NpcSettings_Yoshi),
|
||||||
.pos = { 172.0f, 30.0f, 418.0f },
|
.pos = { 172.0f, 30.0f, 418.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Councillor),
|
.init = &N(EVS_NpcInit_Councillor),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = YOSHI_COUNCILLOR_ANIMS,
|
.animations = YOSHI_COUNCILLOR_ANIMS,
|
||||||
@ -417,7 +417,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_Yoshi_Patrol),
|
.settings = &N(NpcSettings_Yoshi_Patrol),
|
||||||
.pos = { -520.0f, 0.0f, -270.0f },
|
.pos = { -520.0f, 0.0f, -270.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Yoshi_01),
|
.init = &N(EVS_NpcInit_Yoshi_01),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -442,7 +442,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_Yoshi_Patrol),
|
.settings = &N(NpcSettings_Yoshi_Patrol),
|
||||||
.pos = { 180.0f, 0.0f, -520.0f },
|
.pos = { 180.0f, 0.0f, -520.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Yoshi_02),
|
.init = &N(EVS_NpcInit_Yoshi_02),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -468,7 +468,7 @@ StaticNpc N(NpcData_Townsfolk)[] = {
|
|||||||
.settings = &N(NpcSettings_Yoshi_Patrol),
|
.settings = &N(NpcSettings_Yoshi_Patrol),
|
||||||
.pos = { 600.0f, 0.0f, -150.0f },
|
.pos = { 600.0f, 0.0f, -150.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Yoshi_03),
|
.init = &N(EVS_NpcInit_Yoshi_03),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -495,7 +495,7 @@ StaticNpc N(NpcData_ChuckQuizmo) = {
|
|||||||
.settings = &N(NpcSettings_ChuckQuizmo),
|
.settings = &N(NpcSettings_ChuckQuizmo),
|
||||||
.pos = { -150.0f, 15.0f, 300.0f },
|
.pos = { -150.0f, 15.0f, 300.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.initVarCount = 1,
|
.initVarCount = 1,
|
||||||
.initVar = { .bytes = { 0, QUIZ_AREA_JAN, QUIZ_COUNT_JAN, QUIZ_MAP_JAN_02 }},
|
.initVar = { .bytes = { 0, QUIZ_AREA_JAN, QUIZ_COUNT_JAN, QUIZ_MAP_JAN_02 }},
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
|
@ -9,27 +9,25 @@
|
|||||||
#include "mapfs/jan_03_shape.h"
|
#include "mapfs/jan_03_shape.h"
|
||||||
#include "mapfs/jan_03_hit.h"
|
#include "mapfs/jan_03_hit.h"
|
||||||
|
|
||||||
#include "sprite/npc/WorldSushie.h"
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
NPC_Toad = 0,
|
NPC_Toad = 0,
|
||||||
NPC_Yoshi_01 = 1,
|
NPC_Yoshi_01 = 1,
|
||||||
NPC_VillageLeader = 2,
|
NPC_VillageLeader = 2,
|
||||||
NPC_Yoshi_02 = 3,
|
NPC_Yoshi_02 = 3,
|
||||||
NPC_Yoshi_03 = 4,
|
NPC_Yoshi_03 = 4,
|
||||||
NPC_YoshiKid_01 = 5,
|
NPC_YoshiKid_01 = 5,
|
||||||
NPC_YoshiKid_02 = 6,
|
NPC_YoshiKid_02 = 6,
|
||||||
NPC_YoshiKid_03 = 7,
|
NPC_YoshiKid_03 = 7,
|
||||||
NPC_YoshiKid_04 = 8,
|
NPC_YoshiKid_04 = 8,
|
||||||
NPC_YoshiKid_05 = 9,
|
NPC_YoshiKid_05 = 9,
|
||||||
NPC_Raven_01 = 10,
|
NPC_Raven_01 = 10,
|
||||||
NPC_Raven_02 = 11,
|
NPC_Raven_02 = 11,
|
||||||
NPC_Raven_03 = 12,
|
NPC_Raven_03 = 12,
|
||||||
NPC_Raven_04 = 13,
|
NPC_Raven_04 = 13,
|
||||||
NPC_Raven_05 = 14,
|
NPC_Raven_05 = 14,
|
||||||
NPC_Kolorado = 15,
|
NPC_Kolorado = 15,
|
||||||
NPC_Sushie = 16,
|
NPC_Sushie = 16,
|
||||||
NPC_ChuckQuizmo = 17,
|
NPC_ChuckQuizmo = 17,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NAMESPACE jan_03
|
#define NAMESPACE jan_03
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include "effects.h"
|
#include "effects.h"
|
||||||
|
|
||||||
#include "world/common/entity/Pipe.inc.c"
|
#include "world/common/entity/Pipe.inc.c"
|
||||||
#include "world/common/entity/Pipe.data.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/atomic/TexturePan.inc.c"
|
#include "world/common/atomic/TexturePan.inc.c"
|
||||||
#include "world/common/atomic/TexturePan.data.inc.c"
|
#include "world/common/atomic/TexturePan.data.inc.c"
|
||||||
|
@ -13,15 +13,7 @@
|
|||||||
#include "world/common/npc/Raven.inc.c"
|
#include "world/common/npc/Raven.inc.c"
|
||||||
#define NAME_SUFFIX
|
#define NAME_SUFFIX
|
||||||
|
|
||||||
NpcSettings N(NpcSettings_Sushie) = {
|
#include "world/common/npc/Sushie.inc.c"
|
||||||
.height = 23,
|
|
||||||
.radius = 22,
|
|
||||||
.level = 14,
|
|
||||||
.onHit = &EnemyNpcHit,
|
|
||||||
.onDefeat = &EnemyNpcDefeat,
|
|
||||||
.actionFlags = AI_ACTION_JUMP_WHEN_SEE_PLAYER,
|
|
||||||
};
|
|
||||||
|
|
||||||
#include "world/common/npc/Kolorado.inc.c"
|
#include "world/common/npc/Kolorado.inc.c"
|
||||||
|
|
||||||
#include "world/common/complete/ToadHouseBlanketAnim.inc.c"
|
#include "world/common/complete/ToadHouseBlanketAnim.inc.c"
|
||||||
@ -676,7 +668,7 @@ EvtScript N(EVS_NpcInteract_Kolorado) = {
|
|||||||
EVT_WAIT(15)
|
EVT_WAIT(15)
|
||||||
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Kolorado_Idle)
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Kolorado_Idle)
|
||||||
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_262, 0)
|
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_262, 0)
|
||||||
EVT_CALL(ShowEmote, NPC_SELF, EMOTE_EXCLAMATION, 0, 20, TRUE, 0, 0, 0, 0)
|
EVT_CALL(ShowEmote, NPC_SELF, EMOTE_EXCLAMATION, 0, 20, EMOTER_NPC, 0, 0, 0, 0)
|
||||||
EVT_WAIT(25)
|
EVT_WAIT(25)
|
||||||
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Kolorado_Talk, ANIM_Kolorado_Idle, 0, MSG_CH5_001A)
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Kolorado_Talk, ANIM_Kolorado_Idle, 0, MSG_CH5_001A)
|
||||||
EVT_GIVE_KEY_REWARD(ITEM_MAGICAL_SEED4)
|
EVT_GIVE_KEY_REWARD(ITEM_MAGICAL_SEED4)
|
||||||
@ -770,7 +762,7 @@ StaticNpc N(NpcData_VillageLeader) = {
|
|||||||
.settings = &N(NpcSettings_Yoshi),
|
.settings = &N(NpcSettings_Yoshi),
|
||||||
.pos = { -300.0f, 0.0f, -70.0f },
|
.pos = { -300.0f, 0.0f, -70.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_VillageLeader),
|
.init = &N(EVS_NpcInit_VillageLeader),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = YOSHI_LEADER_ANIMS,
|
.animations = YOSHI_LEADER_ANIMS,
|
||||||
@ -790,27 +782,10 @@ StaticNpc N(NpcData_Sushie) = {
|
|||||||
.settings = &N(NpcSettings_Sushie),
|
.settings = &N(NpcSettings_Sushie),
|
||||||
.pos = { -425.0f, 0.0f, -350.0f },
|
.pos = { -425.0f, 0.0f, -350.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Sushie),
|
.init = &N(EVS_NpcInit_Sushie),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = {
|
.animations = SUSHIE_ANIMS,
|
||||||
.idle = ANIM_WorldSushie_Idle,
|
|
||||||
.walk = ANIM_WorldSushie_Idle,
|
|
||||||
.run = ANIM_WorldSushie_Idle,
|
|
||||||
.chase = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_4 = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_5 = ANIM_WorldSushie_Idle,
|
|
||||||
.death = ANIM_WorldSushie_Idle,
|
|
||||||
.hit = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_8 = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_9 = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_A = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_B = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_C = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_D = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_E = ANIM_WorldSushie_Idle,
|
|
||||||
.anim_F = ANIM_WorldSushie_Idle,
|
|
||||||
},
|
|
||||||
.extraAnimations = N(ExtraAnims_Sushie),
|
.extraAnimations = N(ExtraAnims_Sushie),
|
||||||
.tattle = MSG_NpcTattle_Sushie,
|
.tattle = MSG_NpcTattle_Sushie,
|
||||||
};
|
};
|
||||||
@ -828,7 +803,7 @@ StaticNpc N(NpcData_Kolorado) = {
|
|||||||
.settings = &N(NpcSettings_Kolorado),
|
.settings = &N(NpcSettings_Kolorado),
|
||||||
.pos = { -475.0f, 0.0f, -75.0f },
|
.pos = { -475.0f, 0.0f, -75.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Kolorado),
|
.init = &N(EVS_NpcInit_Kolorado),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = KOLORADO_ANIMS,
|
.animations = KOLORADO_ANIMS,
|
||||||
@ -842,7 +817,7 @@ StaticNpc N(NpcData_Toad)[] = {
|
|||||||
.settings = &N(NpcSettings_Toad_Stationary),
|
.settings = &N(NpcSettings_Toad_Stationary),
|
||||||
.pos = { 275.0f, 0.0f, -70.0f },
|
.pos = { 275.0f, 0.0f, -70.0f },
|
||||||
.yaw = 0,
|
.yaw = 0,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Toad),
|
.init = &N(EVS_NpcInit_Toad),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = TOAD_RED_ANIMS,
|
.animations = TOAD_RED_ANIMS,
|
||||||
@ -853,7 +828,7 @@ StaticNpc N(NpcData_Toad)[] = {
|
|||||||
.settings = &N(NpcSettings_Yoshi),
|
.settings = &N(NpcSettings_Yoshi),
|
||||||
.pos = { 125.0f, 30.0f, -425.0f },
|
.pos = { 125.0f, 30.0f, -425.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Yoshi_01),
|
.init = &N(EVS_NpcInit_Yoshi_01),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = YOSHI_BLUE_ANIMS,
|
.animations = YOSHI_BLUE_ANIMS,
|
||||||
@ -864,7 +839,7 @@ StaticNpc N(NpcData_Toad)[] = {
|
|||||||
.settings = &N(NpcSettings_Yoshi_Patrol),
|
.settings = &N(NpcSettings_Yoshi_Patrol),
|
||||||
.pos = { -350.0f, 0.0f, -220.0f },
|
.pos = { -350.0f, 0.0f, -220.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Yoshi_02),
|
.init = &N(EVS_NpcInit_Yoshi_02),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -889,7 +864,7 @@ StaticNpc N(NpcData_Toad)[] = {
|
|||||||
.settings = &N(NpcSettings_Yoshi_Patrol),
|
.settings = &N(NpcSettings_Yoshi_Patrol),
|
||||||
.pos = { -100.0f, 0.0f, -80.0f },
|
.pos = { -100.0f, 0.0f, -80.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_Yoshi_03),
|
.init = &N(EVS_NpcInit_Yoshi_03),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -914,7 +889,7 @@ StaticNpc N(NpcData_Toad)[] = {
|
|||||||
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
||||||
.pos = { -450.0f, 0.0f, -160.0f },
|
.pos = { -450.0f, 0.0f, -160.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_YoshiKid_01),
|
.init = &N(EVS_NpcInit_YoshiKid_01),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -942,7 +917,7 @@ StaticNpc N(NpcData_Toad)[] = {
|
|||||||
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
||||||
.pos = { -340.0f, 0.0f, -385.0f },
|
.pos = { -340.0f, 0.0f, -385.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_YoshiKid_02),
|
.init = &N(EVS_NpcInit_YoshiKid_02),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -968,7 +943,7 @@ StaticNpc N(NpcData_Toad)[] = {
|
|||||||
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
||||||
.pos = { -260.0f, 0.0f, -220.0f },
|
.pos = { -260.0f, 0.0f, -220.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_YoshiKid_03),
|
.init = &N(EVS_NpcInit_YoshiKid_03),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -994,7 +969,7 @@ StaticNpc N(NpcData_Toad)[] = {
|
|||||||
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
||||||
.pos = { -460.0f, 0.0f, 150.0f },
|
.pos = { -460.0f, 0.0f, 150.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_YoshiKid_04),
|
.init = &N(EVS_NpcInit_YoshiKid_04),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -1020,7 +995,7 @@ StaticNpc N(NpcData_Toad)[] = {
|
|||||||
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
.settings = &N(NpcSettings_YoshiKid_Patrol),
|
||||||
.pos = { -320.0f, 0.0f, 80.0f },
|
.pos = { -320.0f, 0.0f, 80.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.init = &N(EVS_NpcInit_YoshiKid_05),
|
.init = &N(EVS_NpcInit_YoshiKid_05),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.territory = {
|
.territory = {
|
||||||
@ -1056,7 +1031,7 @@ StaticNpc N(NpcData_Ravens)[] = {
|
|||||||
.settings = &N(NpcSettings_Raven),
|
.settings = &N(NpcSettings_Raven),
|
||||||
.pos = { -650.0f, 374.0f, -150.0f },
|
.pos = { -650.0f, 374.0f, -150.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Raven),
|
.init = &N(EVS_NpcInit_Raven),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = RAVEN_ANIMS,
|
.animations = RAVEN_ANIMS,
|
||||||
@ -1068,7 +1043,7 @@ StaticNpc N(NpcData_Ravens)[] = {
|
|||||||
.settings = &N(NpcSettings_Raven),
|
.settings = &N(NpcSettings_Raven),
|
||||||
.pos = { -645.0f, 457.0f, -255.0f },
|
.pos = { -645.0f, 457.0f, -255.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Raven),
|
.init = &N(EVS_NpcInit_Raven),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = RAVEN_ANIMS,
|
.animations = RAVEN_ANIMS,
|
||||||
@ -1078,7 +1053,7 @@ StaticNpc N(NpcData_Ravens)[] = {
|
|||||||
.settings = &N(NpcSettings_Raven),
|
.settings = &N(NpcSettings_Raven),
|
||||||
.pos = { -570.0f, 374.0f, -300.0f },
|
.pos = { -570.0f, 374.0f, -300.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Raven),
|
.init = &N(EVS_NpcInit_Raven),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = RAVEN_ANIMS,
|
.animations = RAVEN_ANIMS,
|
||||||
@ -1089,7 +1064,7 @@ StaticNpc N(NpcData_Ravens)[] = {
|
|||||||
.settings = &N(NpcSettings_Raven),
|
.settings = &N(NpcSettings_Raven),
|
||||||
.pos = { -500.0f, 374.0f, -285.0f },
|
.pos = { -500.0f, 374.0f, -285.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Raven),
|
.init = &N(EVS_NpcInit_Raven),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = RAVEN_ANIMS,
|
.animations = RAVEN_ANIMS,
|
||||||
@ -1100,7 +1075,7 @@ StaticNpc N(NpcData_Ravens)[] = {
|
|||||||
.settings = &N(NpcSettings_Raven),
|
.settings = &N(NpcSettings_Raven),
|
||||||
.pos = { -450.0f, 374.0f, -175.0f },
|
.pos = { -450.0f, 374.0f, -175.0f },
|
||||||
.yaw = 270,
|
.yaw = 270,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000 | ENEMY_FLAG_400000,
|
||||||
.init = &N(EVS_NpcInit_Raven),
|
.init = &N(EVS_NpcInit_Raven),
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
.animations = RAVEN_ANIMS,
|
.animations = RAVEN_ANIMS,
|
||||||
@ -1113,7 +1088,7 @@ StaticNpc N(NpcData_ChuckQuizmo) = {
|
|||||||
.settings = &N(NpcSettings_ChuckQuizmo),
|
.settings = &N(NpcSettings_ChuckQuizmo),
|
||||||
.pos = { 300.0f, 0.0f, 400.0f },
|
.pos = { 300.0f, 0.0f, 400.0f },
|
||||||
.yaw = 90,
|
.yaw = 90,
|
||||||
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_2000,
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_2000,
|
||||||
.initVarCount = 1,
|
.initVarCount = 1,
|
||||||
.initVar = { .bytes = { 0, QUIZ_AREA_JAN, QUIZ_COUNT_JAN, QUIZ_MAP_JAN_03 }},
|
.initVar = { .bytes = { 0, QUIZ_AREA_JAN, QUIZ_COUNT_JAN, QUIZ_MAP_JAN_03 }},
|
||||||
.drops = NPC_NO_DROPS,
|
.drops = NPC_NO_DROPS,
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
#include "jan_04.h"
|
|
||||||
|
|
||||||
static char* N(exit_str_0) = "kmr_24";
|
|
||||||
static char* N(exit_str_1) = "jan_05";
|
|
||||||
|
|
||||||
s32 N(get_tattle)(void) {
|
|
||||||
if (evt_get_variable(NULL, GB_StoryProgress) < STORY_CH5_SUSHIE_JOINED_PARTY) {
|
|
||||||
return MSG_MapTattle_jan_04_before;
|
|
||||||
} else {
|
|
||||||
return MSG_MapTattle_jan_04_after;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
#include "jan_04.h"
|
|
||||||
|
|
||||||
#include "world/common/atomic/TexturePan.inc.c"
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
|||||||
#include "jan_04.h"
|
|
||||||
|
|
||||||
#include "world/common/todo/StashVars.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/todo/GetItemName.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/todo/SomeItemEntityFunc.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/todo/IsItemBadge.inc.c"
|
|
@ -1,3 +0,0 @@
|
|||||||
#include "jan_04.h"
|
|
||||||
|
|
||||||
#include "world/common/util/ChangeNpcToPartner.inc.c"
|
|
@ -1,4 +0,0 @@
|
|||||||
#include "jan_04.h"
|
|
||||||
|
|
||||||
#include "common/foliage.inc.c"
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
#include "jan_04.h"
|
|
||||||
|
|
||||||
#define PARTY_IMAGE "party_opuku"
|
|
||||||
|
|
||||||
BSS PAL_BIN N(palette)[256];
|
|
||||||
BSS IMG_BIN N(raster)[0x3D90]; // similar to LoadPartyImage include but with D_8024A290 in the middle randomly
|
|
||||||
BSS Evt* D_8024A290;
|
|
||||||
BSS char D_8024A294[0xC]; // padding?
|
|
||||||
BSS MessageImageData N(image);
|
|
||||||
|
|
||||||
API_CALLABLE(N(LoadPartyImage)) {
|
|
||||||
u32 decompressedSize;
|
|
||||||
void* compressed = load_asset_by_name(PARTY_IMAGE, &decompressedSize);
|
|
||||||
|
|
||||||
decode_yay0(compressed, &N(palette));
|
|
||||||
general_heap_free(compressed);
|
|
||||||
|
|
||||||
N(image).raster = N(raster);
|
|
||||||
N(image).palette = N(palette);
|
|
||||||
N(image).width = 150;
|
|
||||||
N(image).height = 105;
|
|
||||||
N(image).format = G_IM_FMT_CI;
|
|
||||||
N(image).bitDepth = G_IM_SIZ_8b;
|
|
||||||
set_message_images(&N(image));
|
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* N(exit_str_2) = "flo_00\0\0\0\0\0\0\0";
|
|
@ -1,48 +0,0 @@
|
|||||||
#include "jan_04.h"
|
|
||||||
|
|
||||||
#include "world/common/todo/SetEntityPositionF.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/todo/GetEntityPosition.inc.c"
|
|
||||||
|
|
||||||
ApiStatus func_80240BE8_B45358(Evt* script, s32 isInitialCall) {
|
|
||||||
Entity* entity = get_entity_by_index(script->varTable[10]);
|
|
||||||
|
|
||||||
if (isInitialCall) {
|
|
||||||
script->functionTemp[0] = 0;
|
|
||||||
script->functionTemp[1] = 60;
|
|
||||||
}
|
|
||||||
|
|
||||||
entity->scale.x = (60 - script->functionTemp[1]) / 60.0f;
|
|
||||||
entity->scale.y = (60 - script->functionTemp[1]) / 60.0f;
|
|
||||||
entity->scale.z = (60 - script->functionTemp[1]) / 60.0f;
|
|
||||||
entity->rotation.y = (1.0f - cos_rad(entity->scale.y * PI)) * 990.0 * 0.25f;
|
|
||||||
script->functionTemp[1]--;
|
|
||||||
|
|
||||||
if (script->functionTemp[1] == -1) {
|
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
|
||||||
return ApiStatus_BLOCK;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* N(exit_str_0) = "jan_04\0"; // remove \0 when this is part of a script and not an isolated symbol
|
|
||||||
const char* N(exit_str_1) = "jan_04";
|
|
||||||
|
|
||||||
ApiStatus func_80240D0C_B4547C(Evt* script, s32 isInitialCall) {
|
|
||||||
Entity* entity = get_entity_by_index(script->varTable[10]);
|
|
||||||
|
|
||||||
if (isInitialCall) {
|
|
||||||
script->functionTemp[0] = -30;
|
|
||||||
}
|
|
||||||
entity->rotation.x = script->functionTemp[0];
|
|
||||||
entity->rotation.z = script->functionTemp[0];
|
|
||||||
script->functionTemp[0]++;
|
|
||||||
|
|
||||||
if (script->functionTemp[0] == 1) {
|
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
|
||||||
return ApiStatus_BLOCK;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define NAMESPACE dup_jan_04
|
|
||||||
#include "common/foliage.inc.c"
|
|
||||||
#define NAMESPACE jan_04
|
|
@ -1,39 +0,0 @@
|
|||||||
#include "jan_04.h"
|
|
||||||
#include "world/partners.h"
|
|
||||||
|
|
||||||
extern s32 D_8024625C_B4A9CC;
|
|
||||||
extern Evt* D_8024A290;
|
|
||||||
|
|
||||||
ApiStatus func_80240FC0_B45730(Evt* script, s32 isInitialCall) {
|
|
||||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
|
||||||
EvtScript* rideScript;
|
|
||||||
|
|
||||||
switch (D_8024625C_B4A9CC) {
|
|
||||||
case 0:
|
|
||||||
rideScript = partner_get_ride_script();
|
|
||||||
if (rideScript != NULL) {
|
|
||||||
Evt* newScript;
|
|
||||||
|
|
||||||
D_8024625C_B4A9CC++;
|
|
||||||
newScript = start_script(rideScript, EVT_PRIORITY_0, EVT_FLAG_RUN_IMMEDIATELY);
|
|
||||||
newScript->varTable[1] = playerStatus->position.x - 10.0f;
|
|
||||||
newScript->varTable[2] = playerStatus->position.y;
|
|
||||||
newScript->varTable[3] = playerStatus->position.z;
|
|
||||||
D_8024A290 = newScript;
|
|
||||||
newScript->varTable[12] = 1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
D_8024625C_B4A9CC++;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
wPartnerNpc->yaw = 270.0f;
|
|
||||||
playerStatus->targetYaw = 270.0f;
|
|
||||||
playerStatus->currentYaw = 270.0f;
|
|
||||||
playerStatus->spriteFacingAngle = 180.0f;
|
|
||||||
D_8024A290->functionTemp[1] = 1;
|
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
|
||||||
return ApiStatus_BLOCK;
|
|
||||||
}
|
|
@ -2,8 +2,51 @@
|
|||||||
/// @brief Jade Jungle - Sushi Tree
|
/// @brief Jade Jungle - Sushi Tree
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "../jan.h"
|
|
||||||
#include "message_ids.h"
|
#include "message_ids.h"
|
||||||
#include "map.h"
|
#include "map.h"
|
||||||
|
|
||||||
|
#include "../jan.h"
|
||||||
|
#include "mapfs/jan_04_shape.h"
|
||||||
|
#include "mapfs/jan_04_hit.h"
|
||||||
|
|
||||||
|
#include "sprite/npc/WorldSushie.h"
|
||||||
|
#include "sprite/npc/YoshiKid.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NPC_Sushie = 0,
|
||||||
|
NPC_Bubulb = 1,
|
||||||
|
NPC_YoshiKid_01 = 2,
|
||||||
|
NPC_YoshiKid_02 = 3,
|
||||||
|
NPC_YoshiKid_03 = 4,
|
||||||
|
NPC_YoshiKid_04 = 5,
|
||||||
|
NPC_YoshiKid_05 = 6,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MV_Unk_00 = MapVar(0),
|
||||||
|
MV_Unk_01 = MapVar(1),
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MF_TreeDrop_Letter = MapFlag(10),
|
||||||
|
};
|
||||||
|
|
||||||
#define NAMESPACE jan_04
|
#define NAMESPACE jan_04
|
||||||
|
|
||||||
|
extern EvtScript N(EVS_Main);
|
||||||
|
extern EvtScript N(EVS_SetupMusic);
|
||||||
|
extern EvtScript N(EVS_PushNewPartnerSong);
|
||||||
|
extern EvtScript N(EVS_PopSong);
|
||||||
|
extern EvtScript N(EVS_GotoMap_kmr_24_0);
|
||||||
|
extern EvtScript N(EVS_Scene_TreasureChest);
|
||||||
|
extern EvtScript N(EVS_Scene_Epilogue);
|
||||||
|
extern EvtScript N(EVS_SetupTrees);
|
||||||
|
extern EvtScript N(EVS_SetupBushes);
|
||||||
|
extern EvtScript N(EVS_SetupUnused);
|
||||||
|
extern EvtScript N(EVS_MakeEntities);
|
||||||
|
extern EvtScript N(EVS_PlayDemoScene);
|
||||||
|
|
||||||
|
extern NpcGroupList N(DefaultNPCs);
|
||||||
|
extern NpcGroupList N(EpilogueNPCs);
|
||||||
|
|
||||||
|
API_CALLABLE(N(LoadPartyImage));
|
||||||
|
25
src/world/area_jan/jan_04/jan_04_0_header.c
Normal file
25
src/world/area_jan/jan_04/jan_04_0_header.c
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
|
||||||
|
s32 N(get_tattle)(void) {
|
||||||
|
if (evt_get_variable(NULL, GB_StoryProgress) < STORY_CH5_SUSHIE_JOINED_PARTY) {
|
||||||
|
return MSG_MapTattle_jan_04_before;
|
||||||
|
} else {
|
||||||
|
return MSG_MapTattle_jan_04_after;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EntryList N(Entrances) = {
|
||||||
|
[jan_04_ENTRY_0] { -483.0, 0.0, 0.0, 90.0 },
|
||||||
|
[jan_04_ENTRY_1] { 0.0, -100.0, 0.0, 90.0 },
|
||||||
|
[jan_04_ENTRY_2] { 0.0, -100.0, 0.0, 90.0 },
|
||||||
|
[jan_04_ENTRY_3] { 0.0, -100.0, 0.0, 90.0 },
|
||||||
|
[jan_04_ENTRY_4] { -110.0, -15.0, 204.0, 270.0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
MapSettings N(settings) = {
|
||||||
|
.main = &N(EVS_Main),
|
||||||
|
.entryList = &N(Entrances),
|
||||||
|
.entryCount = ENTRY_COUNT(N(Entrances)),
|
||||||
|
.background = &gBackgroundImage,
|
||||||
|
.tattle = { .get = &N(get_tattle) },
|
||||||
|
};
|
143
src/world/area_jan/jan_04/jan_04_10_demo.c
Normal file
143
src/world/area_jan/jan_04/jan_04_10_demo.c
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
#include "world/partners.h"
|
||||||
|
|
||||||
|
extern Evt* D_8024A290;
|
||||||
|
|
||||||
|
EvtScript N(EVS_ProvideDemoInputs) = {
|
||||||
|
EVT_CALL(DemoJoystickXY, -40, 30)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -67, 50)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -67, 53)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -67, 60)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -67, 65)
|
||||||
|
EVT_WAIT(48)
|
||||||
|
EVT_CALL(DemoJoystickXY, -65, 66)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -63, 66)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -58, 68)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -53, 70)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -46, 72)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -41, 73)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -36, 74)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -34, 74)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -30, 75)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -27, 76)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -20, 77)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -14, 78)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -10, 79)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, -4, 79)
|
||||||
|
EVT_WAIT(2)
|
||||||
|
EVT_CALL(DemoSetButtons, BUTTON_C_DOWN)
|
||||||
|
EVT_WAIT(28)
|
||||||
|
EVT_CALL(DemoSetButtons, 0)
|
||||||
|
EVT_WAIT(25)
|
||||||
|
EVT_CALL(DemoJoystickXY, 4, 80)
|
||||||
|
EVT_WAIT(2)
|
||||||
|
EVT_CALL(DemoJoystickXY, 5, 80)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, 7, 81)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, 11, 81)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, 16, 80)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, 21, 79)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, 31, 77)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, 40, 75)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, 50, 72)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, 60, 70)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DemoJoystickXY, 64, 69)
|
||||||
|
EVT_WAIT(30)
|
||||||
|
EVT_IF_EQ(GF_DemoSceneDone, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_SET(GF_DemoSceneDone, TRUE)
|
||||||
|
EVT_CALL(GotoMapSpecial, EVT_PTR("jan_04"), jan_04_ENTRY_2, TRANSITION_2)
|
||||||
|
EVT_WAIT(110)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_MonitorDemoState) = {
|
||||||
|
EVT_WAIT(10)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(GetDemoState, LVar0)
|
||||||
|
EVT_IF_EQ(LVar0, DEMO_STATE_CHANGE_MAP)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_IF_EQ(GF_DemoSceneDone, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_SET(GF_DemoSceneDone, TRUE)
|
||||||
|
EVT_CALL(GotoMapSpecial, EVT_PTR("jan_04"), jan_04_ENTRY_2, TRANSITION_3)
|
||||||
|
EVT_WAIT(100)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(DemoInitState) = 0;
|
||||||
|
|
||||||
|
API_CALLABLE(N(SetupDemoScene)) {
|
||||||
|
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||||
|
EvtScript* rideScriptSrc;
|
||||||
|
|
||||||
|
switch (N(DemoInitState)) {
|
||||||
|
case 0:
|
||||||
|
rideScriptSrc = partner_get_ride_script();
|
||||||
|
if (rideScriptSrc != NULL) {
|
||||||
|
Evt* newScript;
|
||||||
|
|
||||||
|
N(DemoInitState)++;
|
||||||
|
newScript = start_script(rideScriptSrc, EVT_PRIORITY_0, EVT_FLAG_RUN_IMMEDIATELY);
|
||||||
|
newScript->varTable[1] = playerStatus->position.x - 10.0f;
|
||||||
|
newScript->varTable[2] = playerStatus->position.y;
|
||||||
|
newScript->varTable[3] = playerStatus->position.z;
|
||||||
|
D_8024A290 = newScript;
|
||||||
|
newScript->varTable[12] = 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
N(DemoInitState)++;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
wPartnerNpc->yaw = 270.0f;
|
||||||
|
playerStatus->targetYaw = 270.0f;
|
||||||
|
playerStatus->currentYaw = 270.0f;
|
||||||
|
playerStatus->spriteFacingAngle = 180.0f;
|
||||||
|
D_8024A290->functionTemp[1] = 1;
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
return ApiStatus_BLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
|
EvtScript N(EVS_PlayDemoScene) = {
|
||||||
|
EVT_CALL(N(SetupDemoScene))
|
||||||
|
EVT_SET(GF_DemoSceneDone, FALSE)
|
||||||
|
EVT_EXEC(N(EVS_MonitorDemoState))
|
||||||
|
EVT_EXEC(N(EVS_ProvideDemoInputs))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
30
src/world/area_jan/jan_04/jan_04_1_music.c
Normal file
30
src/world/area_jan/jan_04/jan_04_1_music.c
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
|
||||||
|
EvtScript N(EVS_SetupMusic) = {
|
||||||
|
EVT_CALL(GetEntryID, LVar0)
|
||||||
|
EVT_SWITCH(LVar0)
|
||||||
|
EVT_CASE_RANGE(jan_04_ENTRY_1, jan_04_ENTRY_2)
|
||||||
|
EVT_CALL(SetMusicTrack, 0, SONG_VOLCANO_ESCAPE, 0, 8)
|
||||||
|
EVT_CASE_EQ(jan_04_ENTRY_3)
|
||||||
|
EVT_CALL(FadeInMusic, 0, SONG_JADE_JUNGLE, 0, 3000, 0, 127)
|
||||||
|
EVT_CASE_DEFAULT
|
||||||
|
EVT_CALL(SetMusicTrack, 0, SONG_JADE_JUNGLE, 0, 8)
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(ClearAmbientSounds, 250)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_PushNewPartnerSong) = {
|
||||||
|
EVT_CALL(PushSong, SONG_NEW_PARTNER, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_PopSong) = {
|
||||||
|
EVT_CALL(FadeOutMusic, 0, 500)
|
||||||
|
EVT_WAIT(15)
|
||||||
|
EVT_CALL(PopSong)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
86
src/world/area_jan/jan_04/jan_04_2_main.c
Normal file
86
src/world/area_jan/jan_04/jan_04_2_main.c
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
|
||||||
|
#include "world/common/atomic/TexturePan.inc.c"
|
||||||
|
#include "world/common/atomic/TexturePan.data.inc.c"
|
||||||
|
|
||||||
|
EvtScript N(EVS_GotoMap_kmr_24_0) = {
|
||||||
|
EVT_CALL(FadeOutMusic, 0, 1500)
|
||||||
|
EVT_CALL(GotoMapSpecial, EVT_PTR("kmr_24"), kmr_24_ENTRY_0, TRANSITION_9)
|
||||||
|
EVT_WAIT(100)
|
||||||
|
}; //@bug script not terminated
|
||||||
|
|
||||||
|
EvtScript N(EVS_ExitWalk_jan_05_2) = {
|
||||||
|
EVT_SET_GROUP(EVT_GROUP_1B)
|
||||||
|
EVT_CALL(UseExitHeading, 60, jan_04_ENTRY_0)
|
||||||
|
EVT_EXEC(ExitWalk)
|
||||||
|
EVT_CALL(GotoMap, EVT_PTR("jan_05"), jan_05_ENTRY_2)
|
||||||
|
EVT_WAIT(100)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_BindExitTriggers) = {
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_jan_05_2)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_EnterMap) = {
|
||||||
|
EVT_CALL(GetEntryID, LVar0)
|
||||||
|
EVT_SWITCH(LVar0)
|
||||||
|
EVT_CASE_EQ(jan_04_ENTRY_0)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitw, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
|
||||||
|
EVT_EXEC(EnterWalk)
|
||||||
|
EVT_CASE_RANGE(jan_04_ENTRY_1, jan_04_ENTRY_2)
|
||||||
|
EVT_EXEC(N(EVS_Scene_TreasureChest))
|
||||||
|
EVT_CASE_EQ(jan_04_ENTRY_3)
|
||||||
|
EVT_EXEC(N(EVS_Scene_Epilogue))
|
||||||
|
EVT_CASE_EQ(jan_04_ENTRY_4)
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_Main) = {
|
||||||
|
EVT_SET(GB_WorldLocation, LOCATION_JADE_JUNGLE)
|
||||||
|
EVT_CALL(SetSpriteShading, SHADING_NONE)
|
||||||
|
EVT_SETUP_CAMERA_NO_LEAD()
|
||||||
|
EVT_CALL(GetEntryID, LVar0)
|
||||||
|
EVT_SWITCH(LVar0)
|
||||||
|
EVT_CASE_EQ(jan_04_ENTRY_0)
|
||||||
|
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(DefaultNPCs)))
|
||||||
|
EVT_CASE_EQ(jan_04_ENTRY_3)
|
||||||
|
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(EpilogueNPCs)))
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_EXEC(N(EVS_MakeEntities))
|
||||||
|
EVT_EXEC(N(EVS_SetupTrees))
|
||||||
|
EVT_EXEC(N(EVS_SetupBushes))
|
||||||
|
EVT_EXEC(N(EVS_SetupUnused))
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o52, SURFACE_TYPE_DOCK_WALL)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o53, SURFACE_TYPE_DOCK_WALL)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o54, SURFACE_TYPE_DOCK_WALL)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o52, COLLIDER_FLAG_80000)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o53, COLLIDER_FLAG_80000)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o54, COLLIDER_FLAG_80000)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o1, SURFACE_TYPE_WATER)
|
||||||
|
EVT_CALL(MakeTransformGroup, MODEL_g12)
|
||||||
|
EVT_CALL(EnableTexPanning, MODEL_o61, TRUE)
|
||||||
|
EVT_THREAD
|
||||||
|
TEX_PAN_PARAMS_ID(TEX_PANNER_1)
|
||||||
|
TEX_PAN_PARAMS_STEP( -80, 140, 80, -100)
|
||||||
|
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
|
||||||
|
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
|
||||||
|
EVT_EXEC(N(EVS_UpdateTexturePan))
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(GetDemoState, LVar0)
|
||||||
|
EVT_IF_NE(LVar0, 0)
|
||||||
|
EVT_EXEC_WAIT(N(EVS_PlayDemoScene))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_EXEC(N(EVS_EnterMap))
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_EXEC(N(EVS_SetupMusic))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
18
src/world/area_jan/jan_04/jan_04_3_entity.c
Normal file
18
src/world/area_jan/jan_04/jan_04_3_entity.c
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
#include "entity.h"
|
||||||
|
|
||||||
|
#include "world/common/entity/Chest.inc.c"
|
||||||
|
|
||||||
|
EvtScript N(EVS_OpenChest_VolcanoVase) = EVT_OPEN_CHEST_KEY(ITEM_VOLCANO_VASE, GF_JAN04_Chest_VolcanoVase);
|
||||||
|
|
||||||
|
EvtScript N(EVS_MakeEntities) = {
|
||||||
|
EVT_SWITCH(GB_StoryProgress)
|
||||||
|
EVT_CASE_RANGE(STORY_CH5_BEGAN_PEACH_MISSION, STORY_CH8_REACHED_PEACHS_CASTLE)
|
||||||
|
EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), 0, 0, 0, 0, 0, MAKE_ENTITY_END)
|
||||||
|
EVT_CALL(AssignChestFlag, GF_JAN04_Chest_VolcanoVase)
|
||||||
|
EVT_CALL(AssignScript, EVT_PTR(N(EVS_OpenChest_VolcanoVase)))
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, 300, 0, -225, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_JAN04_Item_StarPiece)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
339
src/world/area_jan/jan_04/jan_04_4_npc.c
Normal file
339
src/world/area_jan/jan_04/jan_04_4_npc.c
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
|
||||||
|
#include "world/common/npc/Sushie.inc.c"
|
||||||
|
#include "world/common/npc/Bubulb.inc.c"
|
||||||
|
#include "world/common/npc/YoshiKid.inc.c"
|
||||||
|
|
||||||
|
EvtScript N(EVS_ShakeTree_Sushie) = {
|
||||||
|
EVT_CALL(GetNpcVar, NPC_Sushie, 0, LVar0)
|
||||||
|
EVT_IF_EQ(LVar0, 2)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_EQ(AF_JAN_08, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_SET(AF_JAN_08, TRUE)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_Sushie, NPC_FLAG_8000, TRUE)
|
||||||
|
EVT_IF_EQ(GF_JAN04_SushieTreeHitCounterB, FALSE)
|
||||||
|
EVT_IF_EQ(GF_JAN04_SushieTreeHitCounterA, FALSE)
|
||||||
|
EVT_CALL(SetNpcJumpscale, NPC_Sushie, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(PlaySoundAtNpc, NPC_Sushie, SOUND_2A0, 0)
|
||||||
|
EVT_CALL(NpcJump0, NPC_Sushie, 90, 140, -85, 20)
|
||||||
|
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 90, 140, -85)
|
||||||
|
EVT_CALL(SetPanTarget, CAM_DEFAULT, 90, 140, -85)
|
||||||
|
EVT_CALL(SetCamDistance, CAM_DEFAULT, 280)
|
||||||
|
EVT_CALL(SetCamPitch, CAM_DEFAULT, 16, EVT_FLOAT(-6.0))
|
||||||
|
EVT_CALL(SetCamSpeed, CAM_DEFAULT, 3)
|
||||||
|
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
|
||||||
|
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_Sushie, ANIM_WorldSushie_Talk, ANIM_WorldSushie_Idle, 0, MSG_CH5_00A1)
|
||||||
|
EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(90.0))
|
||||||
|
EVT_SET(GF_JAN04_SushieTreeHitCounterA, TRUE)
|
||||||
|
EVT_WAIT(10)
|
||||||
|
EVT_SET(AF_JAN_08, FALSE)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SetNpcJumpscale, NPC_Sushie, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(PlaySoundAtNpc, NPC_Sushie, SOUND_2A0, 0)
|
||||||
|
EVT_CALL(NpcJump0, NPC_Sushie, -10, 112, -80, 15)
|
||||||
|
EVT_SET(GF_JAN04_SushieTreeHitCounterA, FALSE)
|
||||||
|
EVT_SET(GF_JAN04_SushieTreeHitCounterB, TRUE)
|
||||||
|
EVT_WAIT(10)
|
||||||
|
EVT_SET(AF_JAN_08, FALSE)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SetNpcJumpscale, NPC_Sushie, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(PlaySoundAtNpc, NPC_Sushie, SOUND_2A0, 0)
|
||||||
|
EVT_CALL(NpcJump0, NPC_Sushie, 50, 0, 0, 20)
|
||||||
|
EVT_SET(GF_JAN04_SushieTreeHitCounterA, TRUE)
|
||||||
|
EVT_CALL(EnableNpcShadow, NPC_Sushie, TRUE)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_Sushie, ANIM_WorldSushie_Hurt)
|
||||||
|
EVT_CALL(SetNpcVar, NPC_Sushie, 0, 10)
|
||||||
|
EVT_UNBIND
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_Sushie, NPC_FLAG_8000, FALSE)
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_Sushie_ScoldPlayerLeaving) = {
|
||||||
|
EVT_LABEL(1)
|
||||||
|
EVT_CALL(GetSelfVar, 0, LVar0)
|
||||||
|
EVT_SWITCH(LVar0)
|
||||||
|
EVT_CASE_EQ(0)
|
||||||
|
EVT_CALL(AwaitPlayerLeave, 0, 0, 170)
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(SetSelfVar, 0, 2)
|
||||||
|
EVT_SET(LVar0, GF_JAN04_SushieTreeHitCounterA)
|
||||||
|
EVT_SET(LVar1, GF_JAN04_SushieTreeHitCounterB)
|
||||||
|
EVT_ADD(LVar0, LVar1)
|
||||||
|
EVT_IF_EQ(LVar0, 0)
|
||||||
|
EVT_CALL(ShowMessageAtScreenPos, MSG_CH5_00A2, 160, 40)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(ShowMessageAtScreenPos, MSG_CH5_00A3, 160, 40)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_CALL(SetSelfVar, 0, 1)
|
||||||
|
EVT_CASE_EQ(1)
|
||||||
|
EVT_CALL(AwaitPlayerApproach, 0, 0, 130)
|
||||||
|
EVT_CALL(SetSelfVar, 0, 0)
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_GOTO(1)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_Sushie_ShoutAtChildren) = {
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(ShowMessageAtScreenPos, MSG_CH5_009E, 320, 60)
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_CALL(AwaitPlayerApproach, 0, 0, 130)
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(ShowMessageAtScreenPos, MSG_CH5_009F, 160, 40)
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_80022)
|
||||||
|
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
|
||||||
|
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2)
|
||||||
|
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
|
||||||
|
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
|
||||||
|
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
|
||||||
|
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(SetPanTarget, CAM_DEFAULT, 30, 140, -60)
|
||||||
|
EVT_CALL(SetCamDistance, CAM_DEFAULT, 300)
|
||||||
|
EVT_CALL(SetCamPitch, CAM_DEFAULT, 16, EVT_FLOAT(-6.0))
|
||||||
|
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
|
||||||
|
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldSushie_Hurt, ANIM_WorldSushie_Idle, 0, MSG_CH5_00A0)
|
||||||
|
EVT_CALL(ResetCam, CAM_DEFAULT, 3)
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002)
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
BombTrigger N(BombPos_SushieTree) = {
|
||||||
|
.pos = { 30.0f, 0.0f, -110.0f },
|
||||||
|
.radius = 0.0f
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "world/common/util/ChangeNpcToPartner.inc.c"
|
||||||
|
|
||||||
|
EvtScript N(EVS_NpcIdle_Sushie) = {
|
||||||
|
EVT_SET(LVar0, GF_JAN04_SushieTreeHitCounterA)
|
||||||
|
EVT_SET(LVar1, GF_JAN04_SushieTreeHitCounterB)
|
||||||
|
EVT_ADD(LVar0, LVar1)
|
||||||
|
EVT_IF_EQ(LVar0, 0)
|
||||||
|
EVT_EXEC_WAIT(N(EVS_Sushie_ShoutAtChildren))
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SetSelfVar, 0, 1)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_SET(AF_JAN_08, FALSE)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Sushie)), TRIGGER_WALL_HAMMER, COLLIDER_o34, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Sushie)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_SushieTree)), 1, 0)
|
||||||
|
EVT_EXEC_GET_TID(N(EVS_Sushie_ScoldPlayerLeaving), LVar9)
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_CALL(GetSelfVar, 0, LVar0)
|
||||||
|
EVT_IF_NE(LVar0, 10)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_KILL_THREAD(LVar9)
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(SetPlayerSpeed, EVT_FLOAT(4.0))
|
||||||
|
EVT_CALL(PlayerMoveTo, 10, 0, 0)
|
||||||
|
EVT_CALL(PlayerFaceNpc, NPC_SELF, FALSE)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldSushie_Idle)
|
||||||
|
EVT_CALL(AdjustCam, CAM_DEFAULT, EVT_FLOAT(5.0), 20, 301, EVT_FLOAT(17.0), EVT_FLOAT(-7.0))
|
||||||
|
EVT_WAIT(10)
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldSushie_Talk, ANIM_WorldSushie_Idle, 0, MSG_CH5_00A4)
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_80007)
|
||||||
|
EVT_WAIT(40)
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002)
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldSushie_Talk, ANIM_WorldSushie_Idle, 0, MSG_CH5_00A5)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldSushie_Sad)
|
||||||
|
EVT_WAIT(30)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldSushie_Idle)
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldSushie_Talk, ANIM_WorldSushie_Idle, 0, MSG_CH5_00A6)
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_80007)
|
||||||
|
EVT_WAIT(40)
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002)
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldSushie_Talk, ANIM_WorldSushie_Idle, 0, MSG_CH5_00A7)
|
||||||
|
EVT_CALL(CloseMessage)
|
||||||
|
EVT_CALL(N(ChangeNpcToPartner), NPC_Sushie, PARTNER_SUSHIE)
|
||||||
|
EVT_CALL(N(LoadPartyImage))
|
||||||
|
EVT_EXEC(N(EVS_PushNewPartnerSong))
|
||||||
|
EVT_WAIT(15)
|
||||||
|
EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_018F, 160, 40)
|
||||||
|
EVT_EXEC(N(EVS_PopSong))
|
||||||
|
EVT_WAIT(10)
|
||||||
|
EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(5.0))
|
||||||
|
EVT_SET(GB_StoryProgress, STORY_CH5_SUSHIE_JOINED_PARTY)
|
||||||
|
EVT_CALL(EnablePartnerAI)
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_NpcInit_Sushie) = {
|
||||||
|
EVT_CALL(GetEntryID, LVar0)
|
||||||
|
EVT_IF_EQ(LVar0, jan_04_ENTRY_3)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_EQ(GB_StoryProgress, STORY_CH5_YOSHI_CHILDREN_ARE_MISSING)
|
||||||
|
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldSushie_Sad)
|
||||||
|
EVT_CALL(SetNpcYaw, NPC_SELF, 270)
|
||||||
|
EVT_IF_EQ(GF_JAN04_SushieTreeHitCounterB, FALSE)
|
||||||
|
EVT_IF_EQ(GF_JAN04_SushieTreeHitCounterA, FALSE)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_SELF, 55, 150, -95)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SetNpcPos, NPC_SELF, 90, 140, -85)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_IF_EQ(GF_JAN04_SushieTreeHitCounterA, FALSE)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_SELF, -10, 112, -80)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SetNpcPos, NPC_SELF, 50, 0, 0)
|
||||||
|
EVT_CALL(EnableNpcShadow, NPC_SELF, TRUE)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Sushie)))
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(RemoveNpc, NPC_SELF)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_NpcInteract_Bubulb) = {
|
||||||
|
EVT_SWITCH(GB_StoryProgress)
|
||||||
|
EVT_CASE_LT(STORY_CH5_RAFAEL_LEFT_NEST)
|
||||||
|
EVT_IF_EQ(GF_JAN04_Met_Bubulb, FALSE)
|
||||||
|
EVT_WAIT(30)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Bubulb_Yellow_PopUp)
|
||||||
|
EVT_WAIT(10)
|
||||||
|
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_BURROW_SURFACE, 0)
|
||||||
|
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_MOLE_POP, 0)
|
||||||
|
EVT_WAIT(35)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Bubulb_Yellow_Idle)
|
||||||
|
EVT_CALL(SetNpcCollisionSize, NPC_SELF, 45, 26)
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_Bubulb, ANIM_Bubulb_Yellow_Talk, ANIM_Bubulb_Yellow_Idle, 0, MSG_CH5_00A8)
|
||||||
|
EVT_SET(GF_JAN04_Met_Bubulb, TRUE)
|
||||||
|
EVT_CALL(SetTattleMessage, NPC_Bubulb, MSG_NpcTattle_JAN_Bubulb_Revealed)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_Bubulb, ANIM_Bubulb_Yellow_Talk, ANIM_Bubulb_Yellow_Idle, 0, MSG_CH5_00A9)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CASE_LT(STORY_CH5_TRADED_VASE_FOR_SEED)
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_Bubulb, ANIM_Bubulb_Yellow_Talk, ANIM_Bubulb_Yellow_Idle, 0, MSG_CH5_00AA)
|
||||||
|
EVT_CASE_LT(STORY_CH6_FLOWER_GATE_OPEN)
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_Bubulb, ANIM_Bubulb_Yellow_Talk, ANIM_Bubulb_Yellow_Idle, 0, MSG_CH5_00AB)
|
||||||
|
EVT_CASE_DEFAULT
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_Bubulb, ANIM_Bubulb_Yellow_Talk, ANIM_Bubulb_Yellow_Idle, 0, MSG_CH5_00AC)
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_NpcInit_Bubulb) = {
|
||||||
|
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(EVS_NpcInteract_Bubulb)))
|
||||||
|
EVT_IF_LT(GB_StoryProgress, STORY_CH5_RAFAEL_LEFT_NEST)
|
||||||
|
EVT_IF_EQ(GF_JAN04_Met_Bubulb, FALSE)
|
||||||
|
EVT_CALL(SetNpcCollisionSize, NPC_SELF, 25, 25)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Bubulb_Yellow_BuriedIdle)
|
||||||
|
EVT_CALL(SetTattleMessage, NPC_Bubulb, MSG_NpcTattle_MAC_Bubulb_Hidden)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticNpc N(NpcData_Characters)[] = {
|
||||||
|
{
|
||||||
|
.id = NPC_Sushie,
|
||||||
|
.settings = &N(NpcSettings_Sushie),
|
||||||
|
.pos = { NPC_DISPOSE_LOCATION },
|
||||||
|
.yaw = 90,
|
||||||
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_100 | ENEMY_FLAG_200 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_400000,
|
||||||
|
.init = &N(EVS_NpcInit_Sushie),
|
||||||
|
.drops = NPC_NO_DROPS,
|
||||||
|
.animations = SUSHIE_ANIMS,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.id = NPC_Bubulb,
|
||||||
|
.settings = &N(NpcSettings_Bubulb),
|
||||||
|
.pos = { -230.0f, 0.0f, -320.0f },
|
||||||
|
.yaw = 90,
|
||||||
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_400000,
|
||||||
|
.init = &N(EVS_NpcInit_Bubulb),
|
||||||
|
.drops = NPC_NO_DROPS,
|
||||||
|
.animations = BUBULB_YELLOW_ANIMS,
|
||||||
|
.tattle = MSG_NpcTattle_JAN_Bubulb_Revealed,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticNpc N(NpcData_YoshiKids)[] = {
|
||||||
|
{
|
||||||
|
.id = NPC_YoshiKid_01,
|
||||||
|
.settings = &N(NpcSettings_YoshiKid),
|
||||||
|
.pos = { NPC_DISPOSE_LOCATION },
|
||||||
|
.yaw = 90,
|
||||||
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4,
|
||||||
|
.drops = NPC_NO_DROPS,
|
||||||
|
.animations = YOSHI_KID_GREEN_ANIMS,
|
||||||
|
.tattle = MSG_NpcTattle_GreenYoshiKid,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.id = NPC_YoshiKid_02,
|
||||||
|
.settings = &N(NpcSettings_YoshiKid),
|
||||||
|
.pos = { 45.0f, 0.0f, -70.0f },
|
||||||
|
.yaw = 90,
|
||||||
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4,
|
||||||
|
.drops = NPC_NO_DROPS,
|
||||||
|
.animations = YOSHI_KID_RED_ANIMS,
|
||||||
|
.tattle = MSG_NpcTattle_RedYoshiKid,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.id = NPC_YoshiKid_03,
|
||||||
|
.settings = &N(NpcSettings_YoshiKid),
|
||||||
|
.pos = { NPC_DISPOSE_LOCATION },
|
||||||
|
.yaw = 90,
|
||||||
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4,
|
||||||
|
.drops = NPC_NO_DROPS,
|
||||||
|
.animations = YOSHI_KID_BLUE_ANIMS,
|
||||||
|
.tattle = MSG_NpcTattle_BlueYoshiKid,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.id = NPC_YoshiKid_04,
|
||||||
|
.settings = &N(NpcSettings_YoshiKid),
|
||||||
|
.pos = { 20.0f, 0.0f, -70.0f },
|
||||||
|
.yaw = 270,
|
||||||
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4,
|
||||||
|
.drops = NPC_NO_DROPS,
|
||||||
|
.animations = YOSHI_KID_YELLOW_ANIMS,
|
||||||
|
.tattle = MSG_NpcTattle_YellowYoshiKid,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.id = NPC_YoshiKid_05,
|
||||||
|
.settings = &N(NpcSettings_YoshiKid),
|
||||||
|
.pos = { NPC_DISPOSE_LOCATION },
|
||||||
|
.yaw = 90,
|
||||||
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4,
|
||||||
|
.drops = NPC_NO_DROPS,
|
||||||
|
.animations = YOSHI_KID_PURPLE_ANIMS,
|
||||||
|
.tattle = MSG_NpcTattle_PurpleYoshiKid,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
NpcGroupList N(DefaultNPCs) = {
|
||||||
|
NPC_GROUP(N(NpcData_Characters)),
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
NpcGroupList N(EpilogueNPCs) = {
|
||||||
|
NPC_GROUP(N(NpcData_Characters)),
|
||||||
|
NPC_GROUP(N(NpcData_YoshiKids)),
|
||||||
|
{}
|
||||||
|
};
|
33
src/world/area_jan/jan_04/jan_04_5_unused.c
Normal file
33
src/world/area_jan/jan_04/jan_04_5_unused.c
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
|
||||||
|
EvtScript N(D_80243750_B47EC0) = {
|
||||||
|
EVT_IF_EQ(MV_Unk_00, 0)
|
||||||
|
EVT_SET(MV_Unk_01, 6)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_ADD(MV_Unk_01, 2)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_80243798) = {
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_SUB(MV_Unk_01, 1)
|
||||||
|
EVT_ADD(MV_Unk_00, MV_Unk_01)
|
||||||
|
EVT_IF_LT(MV_Unk_00, 0)
|
||||||
|
EVT_SET(MV_Unk_01, 0)
|
||||||
|
EVT_SET(MV_Unk_00, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_IF_GT(MV_Unk_00, 90)
|
||||||
|
EVT_SET(MV_Unk_01, 0)
|
||||||
|
EVT_SET(MV_Unk_00, 90)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_SetupUnused) = {
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
99
src/world/area_jan/jan_04/jan_04_6_trees.c
Normal file
99
src/world/area_jan/jan_04/jan_04_6_trees.c
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
|
||||||
|
#define NAME_SUFFIX _Trees
|
||||||
|
#include "common/foliage.inc.c"
|
||||||
|
#define NAME_SUFFIX
|
||||||
|
|
||||||
|
FoliageModelList N(Tree1_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o94, MODEL_o95, MODEL_o96, MODEL_o97, MODEL_o98);
|
||||||
|
FoliageModelList N(Tree1_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o99);
|
||||||
|
|
||||||
|
FoliageVectorList N(Tree1_Effects) = {
|
||||||
|
.count = 2,
|
||||||
|
.vectors = {
|
||||||
|
{ -487.0f, 114.0f, -115.0f },
|
||||||
|
{ -402.0f, 114.0f, -125.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ShakeTreeConfig N(ShakeTree_Tree1) = {
|
||||||
|
.leaves = &N(Tree1_LeafModels),
|
||||||
|
.trunk = &N(Tree1_TrunkModels),
|
||||||
|
.vectors = &N(Tree1_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
BombTrigger N(BombPos_Tree1) = {
|
||||||
|
.pos = { -447.0f, 0.0f, -145.0f },
|
||||||
|
.radius = 0.0f
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Tree2_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o101, MODEL_o102, MODEL_o103, MODEL_o104, MODEL_o105);
|
||||||
|
FoliageModelList N(Tree2_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o100);
|
||||||
|
|
||||||
|
FoliageDropList N(Tree2_Drops) = {
|
||||||
|
.count = 1,
|
||||||
|
.drops = {
|
||||||
|
{
|
||||||
|
.itemID = ITEM_LETTER_TO_RUSS_T,
|
||||||
|
.pos = { 311, 92, -221 },
|
||||||
|
.spawnMode = ITEM_SPAWN_MODE_FALL_NEVER_VANISH,
|
||||||
|
.pickupFlag = GF_JAN04_Tree2_Letter04,
|
||||||
|
.spawnFlag = MF_TreeDrop_Letter,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageVectorList N(Tree2_Effects) = {
|
||||||
|
.count = 2,
|
||||||
|
.vectors = {
|
||||||
|
{ 327.0f, 114.0f, -230.0f },
|
||||||
|
{ 412.0f, 114.0f, -240.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ShakeTreeConfig N(ShakeTree_Tree2) = {
|
||||||
|
.leaves = &N(Tree2_LeafModels),
|
||||||
|
.trunk = &N(Tree2_TrunkModels),
|
||||||
|
.drops = &N(Tree2_Drops),
|
||||||
|
.vectors = &N(Tree2_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
BombTrigger N(BombPos_Tree2) = {
|
||||||
|
.pos = { 367.0f, 0.0f, -260.0f },
|
||||||
|
.radius = 0.0f
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Tree3_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o63, MODEL_o64, MODEL_o65, MODEL_o66, MODEL_o67);
|
||||||
|
FoliageModelList N(Tree3_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o34);
|
||||||
|
|
||||||
|
FoliageVectorList N(Tree3_Effects) = {
|
||||||
|
.count = 2,
|
||||||
|
.vectors = {
|
||||||
|
{ -10.0f, 114.0f, -80.0f },
|
||||||
|
{ 75.0f, 114.0f, -90.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ShakeTreeConfig N(ShakeTree_Tree3) = {
|
||||||
|
.leaves = &N(Tree3_LeafModels),
|
||||||
|
.trunk = &N(Tree3_TrunkModels),
|
||||||
|
.vectors = &N(Tree3_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
BombTrigger N(BombPos_Tree3) = {
|
||||||
|
.pos = { 30.0f, 0.0f, -110.0f },
|
||||||
|
.radius = 0.0f
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_SetupTrees) = {
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree1)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_WALL_HAMMER, COLLIDER_o156, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree1)), 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree2)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_WALL_HAMMER, COLLIDER_o157, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree2)), 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree3)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_WALL_HAMMER, COLLIDER_o34, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree3)), 1, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
109
src/world/area_jan/jan_04/jan_04_7_scenes.c
Normal file
109
src/world/area_jan/jan_04/jan_04_7_scenes.c
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
|
||||||
|
BSS PAL_BIN N(palette)[256];
|
||||||
|
BSS IMG_BIN N(raster)[0x3D90]; // similar to LoadPartyImage include but with D_8024A290 in the middle randomly
|
||||||
|
BSS Evt* D_8024A290;
|
||||||
|
BSS char D_8024A294[0xC]; // padding?
|
||||||
|
BSS MessageImageData N(image);
|
||||||
|
|
||||||
|
API_CALLABLE(N(LoadPartyImage)) {
|
||||||
|
u32 decompressedSize;
|
||||||
|
void* compressed = load_asset_by_name("party_opuku", &decompressedSize);
|
||||||
|
|
||||||
|
decode_yay0(compressed, &N(palette));
|
||||||
|
general_heap_free(compressed);
|
||||||
|
|
||||||
|
N(image).raster = N(raster);
|
||||||
|
N(image).palette = N(palette);
|
||||||
|
N(image).width = 150;
|
||||||
|
N(image).height = 105;
|
||||||
|
N(image).format = G_IM_FMT_CI;
|
||||||
|
N(image).bitDepth = G_IM_SIZ_8b;
|
||||||
|
set_message_images(&N(image));
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vec3f N(YoshiKidsRunPath)[] = {
|
||||||
|
{ -350.0, 0.0, 15.0 },
|
||||||
|
{ -220.0, 25.0, 15.0 },
|
||||||
|
{ -110.0, 0.0, 30.0 },
|
||||||
|
{ -50.0, 0.0, 130.0 },
|
||||||
|
{ 50.0, 0.0, 110.0 },
|
||||||
|
{ 160.0, 25.0, 160.0 },
|
||||||
|
{ 255.0, 0.0, 285.0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_Scene_Epilogue) = {
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(DisablePlayerPhysics, TRUE)
|
||||||
|
EVT_CALL(SetPlayerActionState, ACTION_STATE_LAND)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_Sushie, -40, 0, 15)
|
||||||
|
EVT_CALL(SetNpcYaw, NPC_Sushie, 270)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_Sushie, ANIM_WorldSushie_Read)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid_04, ANIM_YoshiKid_Yellow_Sleep)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid_02, ANIM_YoshiKid_Red_Sleep)
|
||||||
|
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, -20, 0, 0)
|
||||||
|
EVT_CALL(SetPanTarget, CAM_DEFAULT, -20, 0, 0)
|
||||||
|
EVT_CALL(SetCamDistance, CAM_DEFAULT, 350)
|
||||||
|
EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(16.0), EVT_FLOAT(-7.5))
|
||||||
|
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
|
||||||
|
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
|
||||||
|
EVT_WAIT(90)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(SetNpcPos, NPC_YoshiKid_01, -350, 0, 15)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid_01, ANIM_YoshiKid_Green_Run)
|
||||||
|
EVT_CALL(LoadPath, 90, EVT_PTR(N(YoshiKidsRunPath)), ARRAY_COUNT(N(YoshiKidsRunPath)), EASING_LINEAR)
|
||||||
|
EVT_LABEL(10)
|
||||||
|
EVT_CALL(GetNextPathPos)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_YoshiKid_01, LVar1, LVar2, LVar3)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar0, 1)
|
||||||
|
EVT_GOTO(10)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_WAIT(15)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_YoshiKid_05, -350, 0, 15)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid_05, ANIM_YoshiKid_Purple_Run)
|
||||||
|
EVT_CALL(LoadPath, 90, EVT_PTR(N(YoshiKidsRunPath)), ARRAY_COUNT(N(YoshiKidsRunPath)), EASING_LINEAR)
|
||||||
|
EVT_LABEL(11)
|
||||||
|
EVT_CALL(GetNextPathPos)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_YoshiKid_05, LVar1, LVar2, LVar3)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar0, 1)
|
||||||
|
EVT_GOTO(11)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_WAIT(60)
|
||||||
|
EVT_CALL(InterpNpcYaw, NPC_Sushie, 90, 0)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_Sushie, ANIM_WorldSushie_Talk)
|
||||||
|
EVT_CALL(SetNpcJumpscale, NPC_Sushie, EVT_FLOAT(2.0))
|
||||||
|
EVT_CALL(GetNpcPos, NPC_Sushie, LVar0, LVar1, LVar2)
|
||||||
|
EVT_CALL(NpcJump0, NPC_Sushie, LVar0, LVar1, LVar2, 10)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid_01, ANIM_YoshiKid_Green_Talk)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_YoshiKid_03, NPC_FLAG_GRAVITY, TRUE)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_YoshiKid_03, -350, 0, 15)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid_03, ANIM_YoshiKid_Blue_Run)
|
||||||
|
EVT_CALL(SetNpcSpeed, NPC_YoshiKid_03, EVT_FLOAT(5.0))
|
||||||
|
EVT_CALL(NpcMoveTo, NPC_YoshiKid_03, -100, 0, 0)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid_03, ANIM_YoshiKid_Blue_Idle)
|
||||||
|
EVT_CHILD_THREAD
|
||||||
|
EVT_WAIT(20)
|
||||||
|
EVT_CALL(SetNpcJumpscale, NPC_YoshiKid_03, EVT_FLOAT(2.0))
|
||||||
|
EVT_LOOP(10)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid_03, ANIM_YoshiKid_Blue_Jump)
|
||||||
|
EVT_CALL(GetNpcPos, NPC_YoshiKid_03, LVar0, LVar1, LVar2)
|
||||||
|
EVT_CALL(NpcJump0, NPC_YoshiKid_03, LVar0, LVar1, LVar2, 10)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid_03, ANIM_YoshiKid_Blue_Land)
|
||||||
|
EVT_WAIT(8)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_END_CHILD_THREAD
|
||||||
|
EVT_WAIT(90)
|
||||||
|
EVT_CALL(FadeOutMusic, 0, 1000)
|
||||||
|
EVT_CALL(GotoMap, EVT_PTR("flo_00"), flo_00_ENTRY_B)
|
||||||
|
EVT_WAIT(100)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
MAP_RODATA_PAD(2, epilogue);
|
151
src/world/area_jan/jan_04/jan_04_8_treasure.c
Normal file
151
src/world/area_jan/jan_04/jan_04_8_treasure.c
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
#include "entity.h"
|
||||||
|
#include "effects.h"
|
||||||
|
|
||||||
|
#include "world/common/todo/SetEntityPositionF.inc.c"
|
||||||
|
#include "world/common/todo/GetEntityPosition.inc.c"
|
||||||
|
|
||||||
|
API_CALLABLE(N(AnimateFlyingChestRotScale)) {
|
||||||
|
Entity* entity = get_entity_by_index(script->varTable[10]);
|
||||||
|
|
||||||
|
if (isInitialCall) {
|
||||||
|
script->functionTemp[0] = 0;
|
||||||
|
script->functionTemp[1] = 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
entity->scale.x = (60 - script->functionTemp[1]) / 60.0f;
|
||||||
|
entity->scale.y = (60 - script->functionTemp[1]) / 60.0f;
|
||||||
|
entity->scale.z = (60 - script->functionTemp[1]) / 60.0f;
|
||||||
|
entity->rotation.y = (1.0f - cos_rad(entity->scale.y * PI)) * 990.0 * 0.25f;
|
||||||
|
script->functionTemp[1]--;
|
||||||
|
|
||||||
|
if (script->functionTemp[1] == -1) {
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
return ApiStatus_BLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
|
API_CALLABLE(N(AnimateFallingChestRot)) {
|
||||||
|
Entity* entity = get_entity_by_index(script->varTable[10]);
|
||||||
|
|
||||||
|
if (isInitialCall) {
|
||||||
|
script->functionTemp[0] = -30;
|
||||||
|
}
|
||||||
|
entity->rotation.x = script->functionTemp[0];
|
||||||
|
entity->rotation.z = script->functionTemp[0];
|
||||||
|
script->functionTemp[0]++;
|
||||||
|
|
||||||
|
if (script->functionTemp[0] == 1) {
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
return ApiStatus_BLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vec3f N(ChestFlightArc)[] = {
|
||||||
|
{ -40.0, 330.0, -900.0 },
|
||||||
|
{ -117.0, 420.0, -600.0 },
|
||||||
|
{ -195.0, 465.0, -300.0 },
|
||||||
|
{ -272.0, 465.0, 0.0 },
|
||||||
|
{ -350.0, 325.0, 300.0 },
|
||||||
|
{ -350.0, 250.0, 300.0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
Vec3f N(ChestFallPath)[] = {
|
||||||
|
{ 10.0, 130.0, -20.0 },
|
||||||
|
{ 5.0, 75.0, -20.0 },
|
||||||
|
{ 0.0, 0.0, -20.0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
Vec3f N(ChestBouncePath)[] = {
|
||||||
|
{ 0.0, 0.0, -20.0 },
|
||||||
|
{ 0.0, 30.0, -8.0 },
|
||||||
|
{ 0.0, 0.0, 0.0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_Scene_TreasureChest) = {
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(DisablePlayerPhysics, TRUE)
|
||||||
|
EVT_CALL(SetPlayerActionState, ACTION_STATE_LAND)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_GRAVITY, FALSE)
|
||||||
|
EVT_CALL(GetEntryID, LVar0)
|
||||||
|
EVT_IF_EQ(LVar0, jan_04_ENTRY_1)
|
||||||
|
EVT_CALL(PlaySound, SOUND_302)
|
||||||
|
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, -350, 300, 0)
|
||||||
|
EVT_CALL(SetPanTarget, CAM_DEFAULT, -350, 300, 0)
|
||||||
|
EVT_CALL(SetCamPitch, CAM_DEFAULT, 10, EVT_FLOAT(-7.0))
|
||||||
|
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
|
||||||
|
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
|
||||||
|
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), 0, 2650, 0, 148, MAKE_ENTITY_END)
|
||||||
|
EVT_SET(LVarA, LVar0)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(N(AnimateFlyingChestRotScale))
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_SET(LVar9, LVarA)
|
||||||
|
EVT_CALL(LoadPath, 70, EVT_PTR(N(ChestFlightArc)), ARRAY_COUNT(N(ChestFlightArc)), EASING_QUADRATIC_OUT)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(GetNextPathPos)
|
||||||
|
EVT_CALL(N(SetEntityPositionF), LVar9, LVar1, LVar2, LVar3)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar0, 0)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_WAIT(50)
|
||||||
|
EVT_CALL(GotoMap, EVT_PTR("jan_04"), jan_04_ENTRY_2)
|
||||||
|
EVT_WAIT(100)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, 0, 0)
|
||||||
|
EVT_CALL(SetPanTarget, CAM_DEFAULT, 0, 170, 0)
|
||||||
|
EVT_CALL(SetCamDistance, CAM_DEFAULT, 350)
|
||||||
|
EVT_CALL(SetCamPitch, CAM_DEFAULT, 16, EVT_FLOAT(-6.0))
|
||||||
|
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
|
||||||
|
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
|
||||||
|
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
|
||||||
|
EVT_WAIT(20)
|
||||||
|
EVT_CALL(SetPanTarget, CAM_DEFAULT, 0, 0, 0)
|
||||||
|
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(1.2))
|
||||||
|
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
|
||||||
|
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), 0, 2650, 0, 0, MAKE_ENTITY_END)
|
||||||
|
EVT_SET(LVarA, LVar0)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(N(AnimateFallingChestRot))
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_SET(LVar9, LVarA)
|
||||||
|
EVT_CALL(LoadPath, 12, EVT_PTR(N(ChestFallPath)), ARRAY_COUNT(N(ChestFallPath)), EASING_LINEAR)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(GetNextPathPos)
|
||||||
|
EVT_CALL(N(SetEntityPositionF), LVar9, LVar1, LVar2, LVar3)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar0, 0)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_CALL(PlaySoundAt, SOUND_1AF, 0, LVar1, LVar2, LVar3)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_PLAY_EFFECT(EFFECT_WALKING_DUST, 2, -15, 0, 0, 10, 10)
|
||||||
|
EVT_PLAY_EFFECT(EFFECT_WALKING_DUST, 2, 0, 0, 0, 0, 0)
|
||||||
|
EVT_PLAY_EFFECT(EFFECT_WALKING_DUST, 2, 15, 0, 0, 350, 350)
|
||||||
|
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 30, EVT_FLOAT(1.0))
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(LoadPath, 10, EVT_PTR(N(ChestBouncePath)), ARRAY_COUNT(N(ChestBouncePath)), EASING_LINEAR)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(GetNextPathPos)
|
||||||
|
EVT_CALL(N(SetEntityPositionF), LVar9, LVar1, LVar2, LVar3)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar0, 0)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_CALL(PlaySoundAt, SOUND_1AF, 0, LVar1, LVar2, LVar3)
|
||||||
|
EVT_PLAY_EFFECT(EFFECT_WALKING_DUST, 2, -10, 0, 15, 0, 0)
|
||||||
|
EVT_PLAY_EFFECT(EFFECT_WALKING_DUST, 2, -10, 0, 15, 0, 0)
|
||||||
|
EVT_WAIT(60)
|
||||||
|
EVT_EXEC(N(EVS_GotoMap_kmr_24_0))
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
170
src/world/area_jan/jan_04/jan_04_9_bushes.c
Normal file
170
src/world/area_jan/jan_04/jan_04_9_bushes.c
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
#include "jan_04.h"
|
||||||
|
|
||||||
|
#define NAME_SUFFIX _Bushes
|
||||||
|
#include "common/foliage.inc.c"
|
||||||
|
#define NAME_SUFFIX
|
||||||
|
|
||||||
|
FoliageModelList N(Bush1_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o82);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush1_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -400.0f, 20.0f, -120.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush1) = {
|
||||||
|
.bush = &N(Bush1_BushModels),
|
||||||
|
.vectors = &N(Bush1_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush2_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o81);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush2_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -353.0f, 22.0f, -81.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush2) = {
|
||||||
|
.bush = &N(Bush2_BushModels),
|
||||||
|
.vectors = &N(Bush2_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush3_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o83);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush3_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -264.0f, 20.0f, -402.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush3) = {
|
||||||
|
.bush = &N(Bush3_BushModels),
|
||||||
|
.vectors = &N(Bush3_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush4_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o85);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush4_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -211.0f, 22.0f, -420.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush4) = {
|
||||||
|
.bush = &N(Bush4_BushModels),
|
||||||
|
.vectors = &N(Bush4_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush5_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o89);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush5_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -111.0f, 22.0f, -62.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush5) = {
|
||||||
|
.bush = &N(Bush5_BushModels),
|
||||||
|
.vectors = &N(Bush5_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush6_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o91);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush6_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 258.0f, 20.0f, -286.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush6) = {
|
||||||
|
.bush = &N(Bush6_BushModels),
|
||||||
|
.vectors = &N(Bush6_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush7_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o92);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush7_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 315.0f, 20.0f, -289.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush7) = {
|
||||||
|
.bush = &N(Bush7_BushModels),
|
||||||
|
.vectors = &N(Bush7_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush8_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o86);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush8_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 284.0f, 20.0f, 181.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush8) = {
|
||||||
|
.bush = &N(Bush8_BushModels),
|
||||||
|
.vectors = &N(Bush8_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush9_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o88);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush9_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 378.0f, 22.0f, 185.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush9) = {
|
||||||
|
.bush = &N(Bush9_BushModels),
|
||||||
|
.vectors = &N(Bush9_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush10_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o87);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush10_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 435.0f, 20.0f, 205.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush10) = {
|
||||||
|
.bush = &N(Bush10_BushModels),
|
||||||
|
.vectors = &N(Bush10_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_SetupBushes) = {
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush1)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o118, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush2)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o162, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush3)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o119, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush4)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o163, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush5)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o121, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush6)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o122, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush7)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o166, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush8)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o120, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush9)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o164, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush10)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o165, 1, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
@ -1,14 +0,0 @@
|
|||||||
#include "jan_05.h"
|
|
||||||
|
|
||||||
static char* N(exit_str_0) = "jan_03";
|
|
||||||
static char* N(exit_str_1) = "jan_08";
|
|
||||||
static char* N(exit_str_2) = "jan_04";
|
|
||||||
static char* N(exit_str_3) = "jan_06";
|
|
||||||
|
|
||||||
s32 N(get_tattle)(void) {
|
|
||||||
if (evt_get_variable(NULL, GB_StoryProgress) < STORY_CH5_SUSHIE_JOINED_PARTY) {
|
|
||||||
return MSG_MapTattle_jan_05_before;
|
|
||||||
} else {
|
|
||||||
return MSG_MapTattle_jan_05_after;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
#include "jan_05.h"
|
|
||||||
|
|
||||||
#include "world/common/atomic/TexturePan.inc.c"
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
#include "jan_05.h"
|
|
||||||
|
|
||||||
#include "world/common/todo/UnkShadowFunc001.inc.c"
|
|
@ -1,6 +0,0 @@
|
|||||||
#include "jan_05.h"
|
|
||||||
#include "model.h"
|
|
||||||
|
|
||||||
#include "common/foliage.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/todo/PullVineSub.inc.c"
|
|
@ -1,20 +0,0 @@
|
|||||||
#include "jan_05.h"
|
|
||||||
|
|
||||||
#include "world/common/todo/HeartPlant_SpawnHeart.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/enemy/ai/HoppingAI.inc.c"
|
|
||||||
|
|
||||||
#include "world/common/enemy/ai/SpearGuyAI.inc.c"
|
|
||||||
|
|
||||||
#define NAMESPACE dup_jan_05
|
|
||||||
#include "common/foliage.inc.c"
|
|
||||||
#define NAMESPACE jan_05
|
|
||||||
|
|
||||||
ApiStatus func_8024268C_B4D0FC(Evt* script, s32 isInitialCall) {
|
|
||||||
if (get_enemy_safe(0) == NULL) {
|
|
||||||
script->varTable[0] = FALSE;
|
|
||||||
} else {
|
|
||||||
script->varTable[0] = TRUE;
|
|
||||||
}
|
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
|
@ -2,8 +2,40 @@
|
|||||||
/// @brief Jade Jungle - SE Jungle (Quake Hammer)
|
/// @brief Jade Jungle - SE Jungle (Quake Hammer)
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "../jan.h"
|
|
||||||
#include "message_ids.h"
|
#include "message_ids.h"
|
||||||
#include "map.h"
|
#include "map.h"
|
||||||
|
|
||||||
|
#include "../jan.h"
|
||||||
|
#include "mapfs/jan_05_shape.h"
|
||||||
|
#include "mapfs/jan_05_hit.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NPC_JungleFuzzy = 0,
|
||||||
|
NPC_SpearGuy = 1,
|
||||||
|
NPC_SpearGuy_Hitbox = 2,
|
||||||
|
NPC_YoshiKid = 3,
|
||||||
|
NPC_HeartPlant = 4,
|
||||||
|
NPC_HurtPlant = 5,
|
||||||
|
NPC_MBush = 6,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MV_BushOffsetL = MapVar(0),
|
||||||
|
MV_BushOffsetR = MapVar(1),
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MF_BushDrop_Coin = MapFlag(10),
|
||||||
|
MF_KillLogShadow = MapFlag(11),
|
||||||
|
};
|
||||||
|
|
||||||
#define NAMESPACE jan_05
|
#define NAMESPACE jan_05
|
||||||
|
|
||||||
|
extern EvtScript N(EVS_Main);
|
||||||
|
extern EvtScript N(EVS_SetupMusic);
|
||||||
|
extern EvtScript N(EVS_SetupLogs);
|
||||||
|
extern EvtScript N(EVS_SetupTrees);
|
||||||
|
extern EvtScript N(EVS_SetupBushes);
|
||||||
|
extern EvtScript N(EVS_MakeEntities);
|
||||||
|
|
||||||
|
extern NpcGroupList N(DefaultNPCs);
|
||||||
|
24
src/world/area_jan/jan_05/jan_05_0_header.c
Normal file
24
src/world/area_jan/jan_05/jan_05_0_header.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include "jan_05.h"
|
||||||
|
|
||||||
|
s32 N(get_tattle)(void) {
|
||||||
|
if (evt_get_variable(NULL, GB_StoryProgress) < STORY_CH5_SUSHIE_JOINED_PARTY) {
|
||||||
|
return MSG_MapTattle_jan_05_before;
|
||||||
|
} else {
|
||||||
|
return MSG_MapTattle_jan_05_after;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EntryList N(Entrances) = {
|
||||||
|
[jan_05_ENTRY_0] { 330.0, 0.0, 330.0, 315.0 },
|
||||||
|
[jan_05_ENTRY_1] { -500.0, -20.0, 0.0, 90.0 },
|
||||||
|
[jan_05_ENTRY_2] { 480.0, 0.0, 0.0, 270.0 },
|
||||||
|
[jan_05_ENTRY_3] { 0.0, 0.0, -450.0, 180.0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
MapSettings N(settings) = {
|
||||||
|
.main = &N(EVS_Main),
|
||||||
|
.entryList = &N(Entrances),
|
||||||
|
.entryCount = ENTRY_COUNT(N(Entrances)),
|
||||||
|
.background = &gBackgroundImage,
|
||||||
|
.tattle = { .get = &N(get_tattle) },
|
||||||
|
};
|
8
src/world/area_jan/jan_05/jan_05_1_music.c
Normal file
8
src/world/area_jan/jan_05/jan_05_1_music.c
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include "jan_05.h"
|
||||||
|
|
||||||
|
EvtScript N(EVS_SetupMusic) = {
|
||||||
|
EVT_CALL(SetMusicTrack, 0, SONG_JADE_JUNGLE, 0, 8)
|
||||||
|
EVT_CALL(ClearAmbientSounds, 250)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
54
src/world/area_jan/jan_05/jan_05_2_main.c
Normal file
54
src/world/area_jan/jan_05/jan_05_2_main.c
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#include "jan_05.h"
|
||||||
|
|
||||||
|
#include "world/common/atomic/TexturePan.inc.c"
|
||||||
|
#include "world/common/atomic/TexturePan.data.inc.c"
|
||||||
|
|
||||||
|
EvtScript N(EVS_ExitWalk_jan_03_1) = EVT_EXIT_WALK(60, jan_05_ENTRY_0, "jan_03", jan_03_ENTRY_1);
|
||||||
|
EvtScript N(EVS_ExitWalk_jan_08_1) = EVT_EXIT_WALK(60, jan_05_ENTRY_1, "jan_08", jan_08_ENTRY_1);
|
||||||
|
EvtScript N(EVS_ExitWalk_jan_04_0) = EVT_EXIT_WALK(60, jan_05_ENTRY_2, "jan_04", jan_04_ENTRY_0);
|
||||||
|
EvtScript N(EVS_ExitWalk_jan_06_0) = EVT_EXIT_WALK(60, jan_05_ENTRY_3, "jan_06", jan_06_ENTRY_0);
|
||||||
|
|
||||||
|
EvtScript N(EVS_BindExitTriggers) = {
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_jan_08_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_o227, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_jan_03_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilise, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_jan_04_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilie, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_jan_06_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilin, 1, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_Main) = {
|
||||||
|
EVT_SET(GB_WorldLocation, LOCATION_JADE_JUNGLE)
|
||||||
|
EVT_CALL(SetSpriteShading, SHADING_NONE)
|
||||||
|
EVT_SETUP_CAMERA_NO_LEAD()
|
||||||
|
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(DefaultNPCs)))
|
||||||
|
EVT_EXEC_WAIT(N(EVS_MakeEntities))
|
||||||
|
EVT_EXEC(N(EVS_SetupLogs))
|
||||||
|
EVT_EXEC(N(EVS_SetupTrees))
|
||||||
|
EVT_EXEC(N(EVS_SetupBushes))
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o75, SURFACE_TYPE_DOCK_WALL)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o77, SURFACE_TYPE_DOCK_WALL)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o75, COLLIDER_FLAG_80000)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o77, COLLIDER_FLAG_80000)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o1, SURFACE_TYPE_WATER)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_deiliw, SURFACE_TYPE_WATER)
|
||||||
|
EVT_EXEC(N(EVS_SetupTrees))
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitn, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilite, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitse, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitw, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
|
||||||
|
EVT_EXEC(EnterWalk)
|
||||||
|
EVT_EXEC(N(EVS_SetupMusic))
|
||||||
|
EVT_CALL(MakeTransformGroup, MODEL_g25)
|
||||||
|
EVT_CALL(EnableTexPanning, MODEL_o101, TRUE)
|
||||||
|
EVT_THREAD
|
||||||
|
TEX_PAN_PARAMS_ID(TEX_PANNER_1)
|
||||||
|
TEX_PAN_PARAMS_STEP( -80, 140, 80, -100)
|
||||||
|
TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1)
|
||||||
|
TEX_PAN_PARAMS_INIT( 0, 0, 0, 0)
|
||||||
|
EVT_EXEC(N(EVS_UpdateTexturePan))
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
154
src/world/area_jan/jan_05/jan_05_3_log.c
Normal file
154
src/world/area_jan/jan_05/jan_05_3_log.c
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
#include "jan_05.h"
|
||||||
|
#include "effects.h"
|
||||||
|
|
||||||
|
EvtScript N(EVS_SetupLogObjects) = {
|
||||||
|
EVT_IF_EQ(GF_JAN05_CreateLogBridge, FALSE)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o21, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_CALL(EnableModel, MODEL_o147, FALSE)
|
||||||
|
EVT_CALL(EnableModel, MODEL_o148, FALSE)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g31, 0, -240, 0)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g32, 0, -240, 0)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o94, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o92, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_o21, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_CALL(EnableModel, MODEL_o147, TRUE)
|
||||||
|
EVT_CALL(EnableModel, MODEL_o148, TRUE)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g31, 0, 10, 0)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g32, 0, 10, 0)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g31, -90, 0, 0, 1)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g32, -90, 0, 0, 1)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g31, 90, 0, 1, 0)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g32, -90, 0, 1, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_LogAnim_RiseUp) = {
|
||||||
|
EVT_CALL(PlaySoundAtCollider, COLLIDER_o94, SOUND_SMASH_GOOMNUT_TREE, 0)
|
||||||
|
EVT_CALL(MakeLerp, -240, -259, 5, EASING_QUARTIC_OUT)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(UpdateLerp)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g31, 0, LVar0, 0)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g32, 0, LVar0, 0)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar1, 0)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "world/common/todo/UpdateLogShadow.inc.c"
|
||||||
|
|
||||||
|
EvtScript N(EVS_LogAnim_FallDown) = {
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_WAIT(17)
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_1002A)
|
||||||
|
EVT_CALL(N(UpdateLogShadow), MODEL_o147, MF_KillLogShadow)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o94, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_CALL(MakeLerp, -259, 60, 30, EASING_QUADRATIC_OUT)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(UpdateLerp)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g31, 0, LVar0, 0)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g32, 0, LVar0, 0)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar1, 0)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(MakeLerp, 60, 0, 30, EASING_CUBIC_IN)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(UpdateLerp)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g31, 0, LVar0, 0)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g32, 0, LVar0, 0)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar1, 0)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002)
|
||||||
|
EVT_CALL(PlaySoundAtCollider, COLLIDER_o94, SOUND_209D, 0)
|
||||||
|
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, -185, 0, 320, 0)
|
||||||
|
EVT_CALL(ShakeCam, CAM_DEFAULT, 2, 3, 1)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_LogAnim_FallOver) = {
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_WAIT(50)
|
||||||
|
EVT_SET(MF_KillLogShadow, TRUE)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(MakeLerp, 0, -90, 60, EASING_CUBIC_IN)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(UpdateLerp)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g31, 0, 0, 0)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g32, 0, 0, 0)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g31, LVar0, 0, 0, 1)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g32, LVar0, 0, 0, 1)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar1, 0)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(ShakeCam, CAM_DEFAULT, 2, 3, 1)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_LogAnim_Split) = {
|
||||||
|
EVT_CALL(PlaySoundAtCollider, COLLIDER_o94, SOUND_209E, 0)
|
||||||
|
EVT_CALL(EnableModel, MODEL_o147, TRUE)
|
||||||
|
EVT_CALL(EnableModel, MODEL_o148, TRUE)
|
||||||
|
EVT_CALL(MakeLerp, 0, 90, 30, EASING_COS_FAST_OVERSHOOT)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(UpdateLerp)
|
||||||
|
EVT_SET(LVar2, LVar0)
|
||||||
|
EVT_DIVF(LVar2, 9)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g31, 0, LVar2, 0)
|
||||||
|
EVT_CALL(TranslateGroup, MODEL_g32, 0, LVar2, 0)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g31, -90, 0, 0, 1)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g32, -90, 0, 0, 1)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g31, LVar0, 0, 1, 0)
|
||||||
|
EVT_CALL(RotateGroup, MODEL_g32, LVar0, 0, -1, 0)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar1, 0)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_Smash_BuriedLog) = {
|
||||||
|
EVT_SET(GF_JAN05_CreateLogBridge, TRUE)
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_EXEC_WAIT(N(EVS_LogAnim_RiseUp))
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_EXEC_WAIT(N(EVS_LogAnim_FallDown))
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_EXEC_WAIT(N(EVS_LogAnim_FallOver))
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_EXEC_WAIT(N(EVS_LogAnim_Split))
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_EXEC(N(EVS_SetupLogObjects))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_SetupLogs) = {
|
||||||
|
EVT_IF_EQ(GF_JAN05_CreateLogBridge, FALSE)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_Smash_BuriedLog)), TRIGGER_WALL_HAMMER, COLLIDER_o94, 1, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_EXEC(N(EVS_SetupLogObjects))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
287
src/world/area_jan/jan_05/jan_05_4_bushes.c
Normal file
287
src/world/area_jan/jan_05/jan_05_4_bushes.c
Normal file
@ -0,0 +1,287 @@
|
|||||||
|
#include "jan_05.h"
|
||||||
|
|
||||||
|
#define NAME_SUFFIX _Bushes
|
||||||
|
#include "common/foliage.inc.c"
|
||||||
|
#define NAME_SUFFIX
|
||||||
|
|
||||||
|
#include "../common/MoveBush.inc.c"
|
||||||
|
#include "../common/MoveBushTemplates.h"
|
||||||
|
|
||||||
|
EvtScript N(EVS_MoveBushes_Separate) = EVT_MOVE_BUSHES(COLLIDER_o64,
|
||||||
|
MODEL_o64, MODEL_o65, MV_BushOffsetL, MV_BushOffsetR);
|
||||||
|
|
||||||
|
EvtScript N(EVS_MoveBushes) = {
|
||||||
|
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o64, COLLIDER_FLAGS_UPPER_MASK)
|
||||||
|
EVT_EXEC(N(EVS_MoveBushes_Separate))
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(MakeLerp, 0, 45, 30, EASING_CUBIC_OUT)
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_CALL(UpdateLerp)
|
||||||
|
EVT_SETF(MV_BushOffsetR, LVar0)
|
||||||
|
EVT_SETF(MV_BushOffsetL, MV_BushOffsetR)
|
||||||
|
EVT_MULF(MV_BushOffsetL, -1)
|
||||||
|
EVT_IF_EQ(LVar1, 1)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush1_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o63);
|
||||||
|
|
||||||
|
FoliageDropList N(Bush1_Drops) = {
|
||||||
|
.count = 1,
|
||||||
|
.drops = {
|
||||||
|
{
|
||||||
|
.itemID = ITEM_COIN,
|
||||||
|
.pos = { 168, 20, 375 },
|
||||||
|
.spawnMode = ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE,
|
||||||
|
.pickupFlag = GF_JAN05_Bush1_Coin,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush1_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 168.0f, 20.0f, 375.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush1) = {
|
||||||
|
.bush = &N(Bush1_BushModels),
|
||||||
|
.drops = &N(Bush1_Drops),
|
||||||
|
.vectors = &N(Bush1_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush2_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o141);
|
||||||
|
|
||||||
|
FoliageDropList N(Bush2_Drops) = {
|
||||||
|
.count = 1,
|
||||||
|
.drops = {
|
||||||
|
{
|
||||||
|
.itemID = ITEM_COIN,
|
||||||
|
.pos = { -401, 20, 176 },
|
||||||
|
.spawnMode = ITEM_SPAWN_MODE_TOSS,
|
||||||
|
.pickupFlag = GF_JAN05_Bush2_Coin,
|
||||||
|
.spawnFlag = MF_BushDrop_Coin,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush2_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -401.0f, 20.0f, 176.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush2) = {
|
||||||
|
.bush = &N(Bush2_BushModels),
|
||||||
|
.drops = &N(Bush2_Drops),
|
||||||
|
.vectors = &N(Bush2_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush3_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o140);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush3_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -242.0f, 22.0f, 205.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush3) = {
|
||||||
|
.bush = &N(Bush3_BushModels),
|
||||||
|
.vectors = &N(Bush3_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush4_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o142);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush4_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -206.0f, 20.0f, 248.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush4) = {
|
||||||
|
.bush = &N(Bush4_BushModels),
|
||||||
|
.vectors = &N(Bush4_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush5_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o134);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush5_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -462.0f, 20.0f, -207.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush5) = {
|
||||||
|
.bush = &N(Bush5_BushModels),
|
||||||
|
.vectors = &N(Bush5_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush6_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o137);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush6_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -417.0f, 20.0f, -261.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush6) = {
|
||||||
|
.bush = &N(Bush6_BushModels),
|
||||||
|
.vectors = &N(Bush6_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush7_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o131);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush7_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -32.0f, 22.0f, -364.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush7) = {
|
||||||
|
.bush = &N(Bush7_BushModels),
|
||||||
|
.vectors = &N(Bush7_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush8_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o132);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush8_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ -91.0f, 20.0f, -485.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush8) = {
|
||||||
|
.bush = &N(Bush8_BushModels),
|
||||||
|
.vectors = &N(Bush8_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush9_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o133);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush9_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 94.0f, 22.0f, -485.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush9) = {
|
||||||
|
.bush = &N(Bush9_BushModels),
|
||||||
|
.vectors = &N(Bush9_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush10_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o139);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush10_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 9.0f, 20.0f, -90.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush10) = {
|
||||||
|
.bush = &N(Bush10_BushModels),
|
||||||
|
.vectors = &N(Bush10_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush11_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o138);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush11_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 53.0f, 20.0f, -63.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush11) = {
|
||||||
|
.bush = &N(Bush11_BushModels),
|
||||||
|
.vectors = &N(Bush11_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush12_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o102);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush12_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 339.0f, 22.0f, -151.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush12) = {
|
||||||
|
.bush = &N(Bush12_BushModels),
|
||||||
|
.vectors = &N(Bush12_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush13_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o126);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush13_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 144.0f, 22.0f, 490.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush13) = {
|
||||||
|
.bush = &N(Bush13_BushModels),
|
||||||
|
.vectors = &N(Bush13_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Bush14_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o106);
|
||||||
|
|
||||||
|
FoliageVectorList N(Bush14_Effects) = {
|
||||||
|
.count = 1,
|
||||||
|
.vectors = {
|
||||||
|
{ 209.0f, 20.0f, 471.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SearchBushConfig N(SearchBush_Bush14) = {
|
||||||
|
.bush = &N(Bush14_BushModels),
|
||||||
|
.vectors = &N(Bush14_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_SetupBushes) = {
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_MoveBushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o64, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush1)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o135, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush2)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o213, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush3)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o214, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush4)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o215, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush5)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o216, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush6)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o217, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush7)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o218, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush8)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o219, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush9)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o220, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush10)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o221, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush11)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o222, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush12)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o223, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush13)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o224, 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush14)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_SearchBush_Bushes)), TRIGGER_WALL_PRESS_A, COLLIDER_o225, 1, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
327
src/world/area_jan/jan_05/jan_05_5_npc.c
Normal file
327
src/world/area_jan/jan_05/jan_05_5_npc.c
Normal file
@ -0,0 +1,327 @@
|
|||||||
|
#include "jan_05.h"
|
||||||
|
|
||||||
|
#include "world/common/enemy/complete/MBush.inc.c"
|
||||||
|
#include "world/common/npc/YoshiKid.inc.c"
|
||||||
|
#include "world/common/enemy/complete/HeartPlant.inc.c"
|
||||||
|
#include "world/common/enemy/complete/HurtPlant.inc.c"
|
||||||
|
#include "world/common/enemy/complete/JungleFuzzy_Wander.inc.c"
|
||||||
|
#include "world/common/enemy/complete/SpearGuy_Wander.inc.c"
|
||||||
|
|
||||||
|
EvtScript N(EVS_NpcIdle_JungleFuzzy) = {
|
||||||
|
EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION)
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_CALL(GetSelfVar, 7, LVar0)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_IF_EQ(LVar0, 0)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Fuzzy_Jungle_Anim09)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_GRAVITY, TRUE)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_8, FALSE)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_SELF, 125, 100, -392)
|
||||||
|
EVT_CALL(PlaySoundWithVolume, SOUND_331, 110)
|
||||||
|
EVT_WAIT(20)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_GRAVITY, FALSE)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_8, TRUE)
|
||||||
|
EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(EVS_NpcAI_JungleFuzzy_Wander)))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_NpcInit_JungleFuzzy) = {
|
||||||
|
EVT_CALL(SetSelfVar, 7, 0)
|
||||||
|
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAG_200000, 1)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_GRAVITY, FALSE)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_8, TRUE)
|
||||||
|
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_JungleFuzzy)))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_YoshiKid_WatchPlayerProximinity) = {
|
||||||
|
EVT_LABEL(1)
|
||||||
|
EVT_CALL(GetSelfVar, 0, LVar0)
|
||||||
|
EVT_SWITCH(LVar0)
|
||||||
|
EVT_CASE_EQ(0)
|
||||||
|
EVT_CALL(AwaitPlayerLeave, -308, -270, 70)
|
||||||
|
EVT_CALL(SetSelfVar, 0, 1)
|
||||||
|
EVT_CASE_EQ(1)
|
||||||
|
EVT_CALL(AwaitPlayerApproach, -308, -270, 50)
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(ShowMessageAtScreenPos, MSG_CH5_00B8, 160, 40)
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_CALL(SetSelfVar, 0, 0)
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_GOTO(1)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_OnShakeTree_Yoshi) = {
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(SetNpcVar, NPC_YoshiKid, 0, 9)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(PlaySoundAtNpc, NPC_YoshiKid, SOUND_301, 0)
|
||||||
|
EVT_CALL(SetNpcJumpscale, NPC_YoshiKid, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(NpcJump0, NPC_YoshiKid, -308, 0, -248, 30)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(EnableNpcShadow, NPC_YoshiKid, TRUE)
|
||||||
|
EVT_WAIT(40)
|
||||||
|
EVT_CALL(SetNpcVar, NPC_YoshiKid, 0, 10)
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_UNBIND
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_YoshiKid_Sleeping) = {
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_CALL(PlaySoundAtNpc, NPC_YoshiKid, SOUND_32F, 0)
|
||||||
|
EVT_WAIT(24)
|
||||||
|
EVT_CALL(PlaySoundAtNpc, NPC_YoshiKid, SOUND_334, 0)
|
||||||
|
EVT_WAIT(21)
|
||||||
|
EVT_CALL(GetNpcVar, NPC_YoshiKid, 0, LVar0)
|
||||||
|
EVT_IF_GE(LVar0, 9)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_YoshiKid_PlaySounds) = {
|
||||||
|
EVT_EXEC_GET_TID(N(EVS_YoshiKid_Sleeping), LVar9)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(GetNpcVar, NPC_YoshiKid, 0, LVar0)
|
||||||
|
EVT_IF_GE(LVar0, 9)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_KILL_THREAD(LVar9)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_YoshiKid, ANIM_YoshiKid_Purple_Cry)
|
||||||
|
EVT_LOOP(3)
|
||||||
|
EVT_CALL(PlaySoundAtNpc, NPC_YoshiKid, SOUND_1F0, 0)
|
||||||
|
EVT_WAIT(13)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_NpcIdle_YoshiKid) = {
|
||||||
|
EVT_CALL(GetEntryID, LVar0)
|
||||||
|
EVT_IF_EQ(LVar0, jan_05_ENTRY_3)
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(ShowMessageAtScreenPos, MSG_CH5_00B8, 160, 40)
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_OnShakeTree_Yoshi)), TRIGGER_WALL_HAMMER, COLLIDER_o87, 1, 0)
|
||||||
|
EVT_EXEC_GET_TID(N(EVS_YoshiKid_WatchPlayerProximinity), LVar9)
|
||||||
|
EVT_LOOP(0)
|
||||||
|
EVT_WAIT(1)
|
||||||
|
EVT_CALL(GetSelfVar, 0, LVar0)
|
||||||
|
EVT_IF_EQ(LVar0, 10)
|
||||||
|
EVT_BREAK_LOOP
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_KILL_THREAD(LVar9)
|
||||||
|
EVT_CALL(DisablePlayerInput, TRUE)
|
||||||
|
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
|
||||||
|
EVT_IF_LT(LVar0, -270)
|
||||||
|
EVT_SET(LVar0, -324)
|
||||||
|
EVT_SET(LVar1, -355)
|
||||||
|
EVT_SET(LVar2, 27)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_SET(LVar0, -216)
|
||||||
|
EVT_SET(LVar1, -185)
|
||||||
|
EVT_SET(LVar2, -27)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_100, TRUE)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_YoshiKid_Purple_Walk)
|
||||||
|
EVT_CALL(NpcMoveTo, NPC_SELF, -270, -248, 30)
|
||||||
|
EVT_CALL(NpcFacePlayer, NPC_SELF, 0)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(DisablePartnerAI, 0)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_IGNORE_WORLD_COLLISION | NPC_FLAG_100 | NPC_FLAG_8000, TRUE)
|
||||||
|
EVT_CALL(NpcMoveTo, NPC_PARTNER, LVar1, -250, 30)
|
||||||
|
EVT_CALL(NpcFaceNpc, NPC_PARTNER, NPC_YoshiKid, 0)
|
||||||
|
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_IGNORE_WORLD_COLLISION | NPC_FLAG_100 | NPC_FLAG_8000, FALSE)
|
||||||
|
EVT_CALL(EnablePartnerAI)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(PlayerMoveTo, LVar0, -248, 30)
|
||||||
|
EVT_CALL(PlayerFaceNpc, NPC_SELF, FALSE)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_ADD(LVar0, LVar2)
|
||||||
|
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, 0, -248)
|
||||||
|
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, 0, -248)
|
||||||
|
EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(350.0))
|
||||||
|
EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(17.0), EVT_FLOAT(-7.0))
|
||||||
|
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(4.0))
|
||||||
|
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
|
||||||
|
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
|
||||||
|
EVT_WAIT(15)
|
||||||
|
EVT_CALL(GetCurrentPartnerID, LVar0)
|
||||||
|
EVT_IF_EQ(LVar0, PARTNER_SUSHIE)
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_YoshiKid_Purple_SadTalk, ANIM_YoshiKid_Purple_SadIdle, 0, MSG_CH5_00B9)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_YoshiKid_Purple_SadTalk, ANIM_YoshiKid_Purple_SadIdle, 0, MSG_CH5_00BA)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(EndSpeech, NPC_SELF, ANIM_YoshiKid_Purple_Talk, ANIM_YoshiKid_Purple_Idle, 0)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_YoshiKid_Purple_Run)
|
||||||
|
EVT_CALL(SetNpcSpeed, NPC_SELF, EVT_FLOAT(5.0))
|
||||||
|
EVT_CALL(NpcMoveTo, NPC_SELF, -315, -135, 0)
|
||||||
|
EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FLOAT(0.5))
|
||||||
|
EVT_CALL(NpcJump0, NPC_SELF, -325, 0, 215, 25)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_SET(GF_JAN05_SavedYoshi, TRUE)
|
||||||
|
EVT_SET(LVar0, 0)
|
||||||
|
EVT_ADD(LVar0, GF_JAN05_SavedYoshi)
|
||||||
|
EVT_ADD(LVar0, GF_JAN07_SavedYoshi)
|
||||||
|
EVT_ADD(LVar0, GF_JAN08_SavedYoshi)
|
||||||
|
EVT_ADD(LVar0, GF_JAN10_SavedYoshi)
|
||||||
|
EVT_ADD(LVar0, GF_JAN11_SavedYoshi)
|
||||||
|
EVT_IF_EQ(LVar0, 5)
|
||||||
|
EVT_CALL(SetMusicTrack, 0, SONG_YOSHI_KIDS_FOUND, 0, 8)
|
||||||
|
EVT_SET(GB_StoryProgress, STORY_CH5_ALL_YOSHI_CHILDREN_RESCUED)
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_ThumbsUp)
|
||||||
|
EVT_WAIT(120)
|
||||||
|
EVT_EXEC(N(EVS_SetupMusic))
|
||||||
|
EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_WAIT(30)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(4.0))
|
||||||
|
EVT_CALL(DisablePlayerInput, FALSE)
|
||||||
|
EVT_CALL(RemoveNpc, NPC_SELF)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_NpcInit_YoshiKid) = {
|
||||||
|
EVT_IF_EQ(GB_StoryProgress, STORY_CH5_SUSHIE_JOINED_PARTY)
|
||||||
|
EVT_IF_EQ(GF_JAN05_SavedYoshi, FALSE)
|
||||||
|
EVT_CALL(SetNpcPos, NPC_SELF, -308, 110, -300)
|
||||||
|
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
|
||||||
|
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_YoshiKid_Purple_Sleep)
|
||||||
|
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_YoshiKid)))
|
||||||
|
EVT_EXEC(N(EVS_YoshiKid_PlaySounds))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(RemoveNpc, NPC_SELF)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticNpc N(NpcData_YoshiKid) = {
|
||||||
|
.id = NPC_YoshiKid,
|
||||||
|
.settings = &N(NpcSettings_YoshiKid),
|
||||||
|
.pos = { -320.0f, 0.0f, 80.0f },
|
||||||
|
.yaw = 270,
|
||||||
|
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_400000,
|
||||||
|
.init = &N(EVS_NpcInit_YoshiKid),
|
||||||
|
.drops = NPC_NO_DROPS,
|
||||||
|
.animations = YOSHI_KID_PURPLE_ANIMS,
|
||||||
|
.tattle = MSG_NpcTattle_PurpleYoshiKid,
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(ExtraAnims_JungleFuzzy)[] = {
|
||||||
|
ANIM_Fuzzy_Jungle_Idle,
|
||||||
|
ANIM_Fuzzy_Jungle_Walk,
|
||||||
|
ANIM_Fuzzy_Jungle_Run,
|
||||||
|
ANIM_Fuzzy_Jungle_Hurt,
|
||||||
|
-1
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticNpc N(NpcData_JungleFuzzy) = {
|
||||||
|
.id = NPC_JungleFuzzy,
|
||||||
|
.settings = &N(NpcSettings_JungleFuzzy_Wander),
|
||||||
|
.pos = { 0.0f, 0.0f, 0.0f },
|
||||||
|
.yaw = 270,
|
||||||
|
.flags = ENEMY_FLAG_400 | ENEMY_FLAG_400000,
|
||||||
|
.init = &N(EVS_NpcInit_JungleFuzzy),
|
||||||
|
.territory = {
|
||||||
|
.wander = {
|
||||||
|
.isFlying = TRUE,
|
||||||
|
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
|
||||||
|
.wanderShape = SHAPE_CYLINDER,
|
||||||
|
.centerPos = { 63, 0, -366 },
|
||||||
|
.wanderSize = { 50 },
|
||||||
|
.detectShape = SHAPE_CYLINDER,
|
||||||
|
.detectPos = { 63, 0, -366 },
|
||||||
|
.detectSize = { 200 },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.drops = JUNGLE_FUZZY_DROPS,
|
||||||
|
.animations = JUNGLE_FUZZY_ANIMS,
|
||||||
|
.extraAnimations = N(ExtraAnims_JungleFuzzy),
|
||||||
|
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticNpc N(NpcData_SpearGuy)[] = {
|
||||||
|
{
|
||||||
|
.id = NPC_SpearGuy,
|
||||||
|
.pos = { 0.0f, 0.0f, 0.0f },
|
||||||
|
.yaw = 90,
|
||||||
|
.territory = {
|
||||||
|
.wander = {
|
||||||
|
.isFlying = FALSE,
|
||||||
|
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
|
||||||
|
.wanderShape = SHAPE_CYLINDER,
|
||||||
|
.centerPos = { 0, 0, 0 },
|
||||||
|
.wanderSize = { 20 },
|
||||||
|
.detectShape = SHAPE_CYLINDER,
|
||||||
|
.detectPos = { 0, 0, 0 },
|
||||||
|
.detectSize = { 100 },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.flags = ENEMY_FLAG_400 | ENEMY_FLAG_800,
|
||||||
|
SPEAR_GUY_WANDER_NPC_DATA
|
||||||
|
},
|
||||||
|
SPEAR_GUY_HITBOX(NPC_SpearGuy_Hitbox)
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticNpc N(NpcData_HeartPlant) = {
|
||||||
|
.id = NPC_HeartPlant,
|
||||||
|
.settings = &N(NpcSettings_HeartPlant),
|
||||||
|
.pos = { 430.0f, 0.0f, 205.0f },
|
||||||
|
.yaw = 270,
|
||||||
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
||||||
|
.drops = NPC_NO_DROPS,
|
||||||
|
.animations = HEART_PLANT_ANIMS,
|
||||||
|
.tattle = MSG_NpcTattle_HeartPlant,
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticNpc N(NpcData_HurtPlant) = {
|
||||||
|
.id = NPC_HurtPlant,
|
||||||
|
.pos = { 375.0f, 0.0f, 260.0f },
|
||||||
|
.yaw = 270,
|
||||||
|
HURT_PLANT_NPC_DATA
|
||||||
|
};
|
||||||
|
|
||||||
|
StaticNpc N(NpcData_MBush) = {
|
||||||
|
.id = NPC_MBush,
|
||||||
|
.settings = &N(NpcSettings_MBush),
|
||||||
|
.pos = { 400.0f, 0.0f, -75.0f },
|
||||||
|
.yaw = 90,
|
||||||
|
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_100 | ENEMY_FLAG_400 | ENEMY_FLAG_800 | ENEMY_FLAG_8000 | ENEMY_FLAG_400000,
|
||||||
|
.drops = MBUSH_DROPS,
|
||||||
|
.animations = MBUSH_ANIMS,
|
||||||
|
.tattle = MSG_NpcTattle_MBush,
|
||||||
|
};
|
||||||
|
|
||||||
|
NpcGroupList N(DefaultNPCs) = {
|
||||||
|
NPC_GROUP(N(NpcData_JungleFuzzy), BTL_JAN_FORMATION_0A, BTL_JAN_STAGE_01),
|
||||||
|
NPC_GROUP(N(NpcData_SpearGuy), BTL_JAN_FORMATION_00, BTL_JAN_STAGE_01),
|
||||||
|
NPC_GROUP(N(NpcData_HeartPlant)),
|
||||||
|
NPC_GROUP(N(NpcData_HurtPlant), BTL_JAN_FORMATION_08, BTL_JAN_STAGE_01),
|
||||||
|
NPC_GROUP(N(NpcData_MBush), BTL_JAN_FORMATION_0E, BTL_JAN_STAGE_01),
|
||||||
|
NPC_GROUP(N(NpcData_YoshiKid)),
|
||||||
|
{}
|
||||||
|
};
|
118
src/world/area_jan/jan_05/jan_05_6_trees.c
Normal file
118
src/world/area_jan/jan_05/jan_05_6_trees.c
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
#include "jan_05.h"
|
||||||
|
|
||||||
|
#define NAME_SUFFIX _Trees
|
||||||
|
#include "common/foliage.inc.c"
|
||||||
|
#define NAME_SUFFIX
|
||||||
|
|
||||||
|
API_CALLABLE(N(func_8024268C_B4D0FC)) {
|
||||||
|
if (get_enemy_safe(NPC_JungleFuzzy) == NULL) {
|
||||||
|
script->varTable[0] = FALSE;
|
||||||
|
} else {
|
||||||
|
script->varTable[0] = TRUE;
|
||||||
|
}
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
|
||||||
|
EvtScript N(EVS_OnShakeTree1) = {
|
||||||
|
EVT_WAIT(15)
|
||||||
|
EVT_CALL(N(func_8024268C_B4D0FC))
|
||||||
|
EVT_IF_EQ(LVar0, 1)
|
||||||
|
EVT_CALL(SetNpcVar, NPC_JungleFuzzy, 7, 1)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Tree1_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o95, MODEL_o96, MODEL_o97, MODEL_o98, MODEL_o99);
|
||||||
|
FoliageModelList N(Tree1_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o94);
|
||||||
|
|
||||||
|
FoliageVectorList N(Tree1_Effects) = {
|
||||||
|
.count = 2,
|
||||||
|
.vectors = {
|
||||||
|
{ 87.0f, 114.0f, -390.0f },
|
||||||
|
{ 172.0f, 114.0f, -400.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ShakeTreeConfig N(ShakeTree_Tree1) = {
|
||||||
|
.leaves = &N(Tree1_LeafModels),
|
||||||
|
.trunk = &N(Tree1_TrunkModels),
|
||||||
|
.vectors = &N(Tree1_Effects),
|
||||||
|
.callback = &N(EVS_OnShakeTree1),
|
||||||
|
};
|
||||||
|
|
||||||
|
BombTrigger N(BombPos_Tree1) = {
|
||||||
|
.pos = { 127.0f, 0.0f, -420.0f },
|
||||||
|
.radius = 0.0f
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Tree2_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o89, MODEL_o90, MODEL_o91, MODEL_o92, MODEL_o93);
|
||||||
|
FoliageModelList N(Tree2_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o88);
|
||||||
|
|
||||||
|
FoliageDropList N(Tree2_Drops) = {
|
||||||
|
.count = 1,
|
||||||
|
.drops = {
|
||||||
|
{
|
||||||
|
.itemID = ITEM_COIN,
|
||||||
|
.pos = { 400, 100, -145 },
|
||||||
|
.spawnMode = ITEM_SPAWN_MODE_FALL_SPAWN_ONCE,
|
||||||
|
.pickupFlag = GF_JAN05_Tree2_Coin,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageVectorList N(Tree2_Effects) = {
|
||||||
|
.count = 2,
|
||||||
|
.vectors = {
|
||||||
|
{ 402.0f, 114.0f, -135.0f },
|
||||||
|
{ 487.0f, 114.0f, -145.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ShakeTreeConfig N(ShakeTree_Tree2) = {
|
||||||
|
.leaves = &N(Tree2_LeafModels),
|
||||||
|
.trunk = &N(Tree2_TrunkModels),
|
||||||
|
.drops = &N(Tree2_Drops),
|
||||||
|
.vectors = &N(Tree2_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
BombTrigger N(BombPos_Tree2) = {
|
||||||
|
.pos = { 442.0f, 0.0f, -165.0f },
|
||||||
|
.radius = 0.0f
|
||||||
|
};
|
||||||
|
|
||||||
|
FoliageModelList N(Tree3_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o83, MODEL_o84, MODEL_o85, MODEL_o86, MODEL_o87);
|
||||||
|
FoliageModelList N(Tree3_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o34);
|
||||||
|
|
||||||
|
FoliageVectorList N(Tree3_Effects) = {
|
||||||
|
.count = 2,
|
||||||
|
.vectors = {
|
||||||
|
{ -309.0f, 112.0f, -301.0f },
|
||||||
|
{ -226.0f, 105.0f, -306.0f },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ShakeTreeConfig N(ShakeTree_Tree3) = {
|
||||||
|
.leaves = &N(Tree3_LeafModels),
|
||||||
|
.trunk = &N(Tree3_TrunkModels),
|
||||||
|
.vectors = &N(Tree3_Effects),
|
||||||
|
};
|
||||||
|
|
||||||
|
BombTrigger N(BombPos_Tree3) = {
|
||||||
|
.pos = { -270.0f, 0.0f, -310.0f },
|
||||||
|
.radius = 0.0f
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(EVS_SetupTrees) = {
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree1)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_WALL_HAMMER, COLLIDER_o187, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree1)), 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree2)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_WALL_HAMMER, COLLIDER_o188, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree2)), 1, 0)
|
||||||
|
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree3)))
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_WALL_HAMMER, COLLIDER_o87, 1, 0)
|
||||||
|
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ShakeTree_Trees)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree3)), 1, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
11
src/world/area_jan/jan_05/jan_05_7_entity.c
Normal file
11
src/world/area_jan/jan_05/jan_05_7_entity.c
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include "jan_05.h"
|
||||||
|
#include "entity.h"
|
||||||
|
|
||||||
|
EvtScript N(EVS_MakeEntities) = {
|
||||||
|
EVT_CALL(MakeEntity, EVT_PTR(Entity_RedBlock), 0, 60, 0, 0, ITEM_POWER_QUAKE, MAKE_ENTITY_END)
|
||||||
|
EVT_CALL(AssignBlockFlag, GF_JAN05_BadgeBlock_PowerQuake)
|
||||||
|
EVT_CALL(MakeEntity, EVT_PTR(Entity_CymbalPlant), 205, 0, 220, 0, MAKE_ENTITY_END)
|
||||||
|
EVT_CALL(MakeEntity, EVT_PTR(Entity_TrumpetPlant), -386, 0, -214, 160, MAKE_ENTITY_END)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
@ -1,9 +0,0 @@
|
|||||||
#include "jan_06.h"
|
|
||||||
|
|
||||||
static char* N(exit_str_0) = "jan_05";
|
|
||||||
static char* N(exit_str_1) = "jan_07";
|
|
||||||
static char* N(exit_str_2) = "jan_12";
|
|
||||||
static char* N(exit_str_3) = "jan_09";
|
|
||||||
|
|
||||||
#include "world/common/atomic/TexturePan.inc.c"
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
#include "jan_06.h"
|
|
||||||
|
|
||||||
ApiStatus func_80240310_B52B40(Evt* script, s32 isInitialCall) {
|
|
||||||
Bytecode* args = script->ptrReadPos;
|
|
||||||
|
|
||||||
script->functionTemp[0] = evt_get_variable(script, *args++);
|
|
||||||
script->functionTemp[1] = evt_get_variable(script, *args++);
|
|
||||||
script->functionTemp[2] = evt_get_variable(script, *args++);
|
|
||||||
sfx_adjust_env_sound_pos(SOUND_9E, SOUND_SPACE_MODE_0, script->functionTemp[0], script->functionTemp[1], script->functionTemp[2]);
|
|
||||||
|
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
#include "jan_06.h"
|
|
||||||
|
|
||||||
#include "world/common/todo/UnkShadowFunc001.inc.c"
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user