23#include "text/msg_ids.h"
140 if ((
u16)(leader->
facing - 0x6001) <= 0x3FFE) {
165 if ((
u16)(leader->
facing + 0x5fff) <= 0x3ffe) {
193 switch (
work->touchedTrigger) {
285 {0,
CONDITION_ALWAYS, 168, 0, 168,
FACING_SOUTH, 0, -1, -1, -1, -1, 0},
290 {0,
CONDITION_ALWAYS, 168, 0, 168,
FACING_SOUTH, 0, -1, -1, -1, -1, 0},
291 {1,
CONDITION_ALWAYS, 144, 0, 192,
FACING_NORTH, 0, 5, 45, 245, 230, 0},
292 {2,
CONDITION_ALWAYS, 400, 0, 192,
FACING_NORTH, 0, 255, 45, 485, 230, 0},
293 {3,
CONDITION_ALWAYS, 624, 0, 240,
FACING_NORTH, 0, 500, 45, 735, 275, 0},
294 {4,
CONDITION_ALWAYS, 128, 0, 432,
FACING_NORTH, 0, 35, 290, 275, 468, 0},
295 {5,
CONDITION_ALWAYS, 384, 0, 384,
FACING_NORTH, 0, 305, 255, 545, 485, 0},
296 {6,
CONDITION_ALWAYS, 464, 0, 448,
FACING_NORTH, 0, 305, 255, 545, 485, 0},
297 {7,
CONDITION_ALWAYS, 720, 0, 496,
FACING_NORTH, 0, 630, 305, 875, 535, 0},
298 {8,
CONDITION_ALWAYS, 800, 0, 440,
FACING_NORTH, 0, 630, 305, 875, 535, 0},
299 {9,
CONDITION_ALWAYS, 48, 0, 640,
FACING_NORTH, 0, 0, 495, 305, 775, 0},
300 {10,
CONDITION_ALWAYS, 224, 0, 736,
FACING_NORTH, 0, 0, 495, 305, 775, 0},
301 {11,
CONDITION_ALWAYS, 408, 0, 616,
FACING_SOUTH, 0, 355, 525, 690, 710, 0},
302 {12,
CONDITION_ALWAYS, 552, 0, 648,
FACING_SOUTH, 0, 355, 525, 690, 710, 0},
303 {13,
CONDITION_ALWAYS, 632, 0, 648,
FACING_SOUTH, 0, 355, 525, 690, 710, 0},
304 {14,
CONDITION_ALWAYS, 552, 0, 680,
FACING_NORTH, 0, 355, 525, 690, 710, 0},
305 {15,
CONDITION_ALWAYS, 632, 0, 680,
FACING_NORTH, 0, 355, 525, 690, 710, 0},
306 {16,
CONDITION_ALWAYS, 808, 0, 616,
FACING_SOUTH, 0, 745, 570, 935, 720, 0},
307 {17,
CONDITION_ALWAYS, 440, 0, 872,
FACING_NORTH, 0, 340, 740, 520, 900, 0},
308 {18,
CONDITION_ALWAYS, 584, 0, 872,
FACING_NORTH, 0, 540, 740, 730, 900, 0},
309 {19,
CONDITION_ALWAYS, 840, 0, 792,
FACING_SOUTH, 0, 710, 740, 940, 900, 0},
314 {0,
CONDITION_ALWAYS, 168, 0, 168,
FACING_SOUTH, 0, -1, -1, -1, -1, 0},
315 {1,
CONDITION_ALWAYS, 248, 0, 304,
FACING_NORTH, 0, 110, 35, 390, 345, 0},
316 {2,
CONDITION_ALWAYS, 248, 0, 128,
FACING_SOUTH, 0, 110, 35, 390, 345, 0},
Ability numbers, named from the English release.
struct FieldActor * Object_GetById(s32 actor)
Returns an actor, or NULL if it does not exist.
The engine calls the debug menus import, and their palette swatch tiles.
void FieldScene_PrepareActors(struct ScenePlacement *entry)
The scene script layer: the engine services a scene's events call, declared once (Engine_EventBegin,...
void Engine_SanctumOpen(s32 priest)
#define MAP_CELL_STEP(srcX, srcY, width, height, frames)
void Engine_ActorSetSpeed(s32 actor, s32 speed, s32 acceleration)
void Engine_InnOpen(s32 inn, s32 keeper)
void Engine_EventCloseScreen(void)
static void Map_CopyCellsTo(s32 srcX, s32 srcY, s32 destX, s32 destY, s32 width, s32 height)
void Engine_EventWaitForScreen(void)
void Engine_ActorDestroy(s32 actor)
s32 Engine_EventAskYesNo(s32 speaker, s32 flags)
void Engine_GameFlagSet(s32 flag)
void Engine_ActorSetChildValue(s32 actor, s32 value)
#define MAP_CELL_STEPS_END
s32 Engine_GameFlagIsSet(s32 flag)
void Engine_MapAnimateCells(const u16 *steps, s32 destX, s32 destY)
void Engine_EventWait(s32 frames)
void Engine_ActorCenterAndWalk(s32 actor, s32 priority, s32 dz)
#define SCENE_TRANSITION(style, variant)
The scene table formats: entrances, exits, placements and events, and the macros that write them.
#define SCENE_EXITS(scene)
#define FIND_MESSAGE(message)
#define SCENE_EXIT(exit, scene, entrance)
@ TALK_FACE_PARTY_AND_BACK
#define PSYNERGY_ON_ACTOR(ability)
#define EVENT_SCRIPT(script)
#define TOUCH_WALKING_INTO(facing)
#define FIND_COINS(coins)
Game flags, named where their meaning is shown.
#define FLAG_KALAY_HEARD_OF_COLOSSO_TOUR
The inn's guests told the party about the Colosso tour to Tolbi.
#define FLAG_KALAY_COLOSSO_TOUR_LEFT
the tour group has left town
GameState, the game's state: play time, coins, the scene and the leader's position,...
struct GameState gGameState
The screen blend's globals and the graphics routines.
Item numbers, named from the English release.
static void KalayInteriors_TalkToInnkeeper(void)
Spoken to across the counter, the leader facing west, the innkeeper offers a room.
struct ScenePlacement gKalayInteriors_HousePlacements[]
struct SceneEvent gKalayInteriors_InnEvents[]
const struct SceneEvent * KalayInteriors_GetEvents(void)
Selects room dialogue with the same entrance grouping as the placements.
struct ScenePlacement gKalayInteriors_NoPlacements[]
u32 gKalayInteriors_Exits[]
static void KalayInteriors_TalkToTourGuide(void)
The tour guide in the inn's dining room: now the party has heard of the tour.
static void KalayInteriors_TalkToPriest(void)
Spoken to across the counter, the leader facing north, the priest offers the sanctum's services; from...
struct SceneEvent gKalayInteriors_NoEvents[]
struct SceneEntrance gKalayInteriors_NoEntrances[]
struct ScenePlacement gKalayInteriors_InnPlacements[]
const struct ScenePlacement * KalayInteriors_GetPlacements(void)
The inn rooms share a placement table, clipped to the current view.
struct SceneEntrance gKalayInteriors_HouseEntrances[]
struct MapCellAnim gKalayInteriors_DoorCells[]
const struct SceneEntrance * KalayInteriors_GetEntrances(void)
Selects the entrance table for the rooms or sanctum in this scene.
struct SceneEntrance gKalayInteriors_SanctumEntrances[]
const u32 * KalayInteriors_GetExits(void)
struct SceneEvent gKalayInteriors_HouseEvents[]
A bare flag as a condition holds while that flag is clear: these lines are spoken before the Colosso ...
KalayInteriorsActor
The inn's rooms are entered through entrances 9 to 15 and 17.
@ ACTOR_PRIEST
in the sanctum
@ ACTOR_TOUR_GUIDE
in the inn's dining room
struct ScenePlacement gKalayInteriors_SanctumPlacements[]
static void KalayInteriors_ApplyRoomState(void)
Once the Colosso tour has left, its guests are gone from the inn, and two residents from the houses.
const struct SceneRegion * KalayInteriors_GetRegions(void)
s32 KalayInteriors_Initialize(void)
Sets the opening transition and restores room-specific actors and tiles.
static void KalayInteriors_AskAboutSouthernContinent(void)
A resident asks whether the party knows the continent south of Tolbi, and answers either way.
u16 gKalayInteriors_DoorCellSteps[]
struct SceneEvent gKalayInteriors_SanctumEvents[]
static void KalayInteriors_OpenDoorAndExit(void)
Stops the room actors, opens the selected door and walks the leader out.
The reel game's title lettering.
Declares nothing: an empty header kept for the files that include it.
Scene numbers, named after their places.
char SceneId_KalayInteriors2
char SceneId_KalayInteriors1
Song and sound effect ids, indices into gSound_SongTable.
void Engine_ActorSetAnimation()
struct EventWork * gEventWork
void Engine_EventRequestExit()
void Engine_EventEnd(void)
void Engine_AudioPlayCue()
void Engine_EventBegin(void)
void Engine_EventSetMessage()
void Engine_EventShowMessage()
The running scene's event work: its placement and event tables, its actors, the triggers and exit it ...
s32 startTransition
SCENE_TRANSITION(style, variant).
A field actor: a person or thing on the field with a position, motion toward a target,...
u8 motionFlags
ActorMotionFlag bits; zero is free flight in 3D, and 3 is set on creation.
union FieldCoordinate x
16.16 fixed-point pixels
union FieldCoordinate y
16.16 fixed-point pixels
u16 work
The side of the player's next footprint (2 after a stop), or scene scratch.
Cell replacement: procedure and destination cells.
u16 y
destination cell row
u16 x
destination cell column
A scene entrance: where and facing which way the party arrives, and the camera's bounds there (-1 for...
A scene event: its kind and detail, the trigger it answers, its condition and its value (a message or...
An actor a scene places: its sprite, the condition for placing it, how it behaves,...
A scene's exit region: the box that, while its condition holds, takes the party leader out through it...
The system's routines and globals: interrupts, BIOS sound bias, random numbers and sleep.
The integer types, TRUE, UNUSED and the fixed-address macros.