Alchemy

object

games/tbs/src/object on GitHub

The Field objects guide explains this folder.

Folders

battle_cue.c

games/tbs/src/object/battle_cue.c

Globals

gEncounter_BattleMusic

const u16 gEncounter_BattleMusic[35]

Battle music: each song as 0x8000 | song, followed by the encounters that use it as (zone << 4) + slot, ended by 0 (BattleFx_SelectBattleCue).

Used by BattleFx_SelectBattleCue.

Line 6

colorfx.c

games/tbs/src/object/colorfx.c

Functions

ReelGame_Start

s32 ReelGame_Start(void)

Plays the slot machine: blanks the screen, seeds the random numbers with the play time and runs the game. Returns 0.

Line 58

Graphics_ScaleRgb555

s32 Graphics_ScaleRgb555(u16 *src, u16 *dst, s32 scale, s32 count)

Writes count RGB555 colours from src to dst scaled by scale (16.16, 0x10000 keeps them). Returns 0.

Used by ReelGame_Run.

Line 68

ReelGame_TransferCanvas

void ReelGame_TransferCanvas(void)

A scheduler callback: on a frame whose canvas is ready (transferPending), sends the canvas to its tiles in VRAM (REEL_CANVAS_TILES), then clears it or fades it into trails as transferMode says.

Used by ReelGame_Run.

Line 106

Palette_DarkenSceneStep

void Palette_DarkenSceneStep(void)

Darkens the screen one step: lowers each channel of the 16 colours of BG palette 10 and of OBJ colours 1 to 239 by 1.

Used by ReelGame_Run.

Line 139

Palette_StepTowardResource

void Palette_StepTowardResource(s32 resource)

Moves the first 64 BG colours one step toward the palette of resource; the backdrop colour is not written back.

Used by ReelGame_Run.

Line 183

ReelGame_DrawCanvasLine

void ReelGame_DrawCanvasLine(s32 x0, s32 y0, s32 x1, s32 y1, s32 color)

Draws a line from (x0, y0) to (x1, y1) on the 256 x 128 8bpp canvas (32 tiles across), writing only over lower colour numbers.

Used by ReelGame_Run.

Line 217

ReelGame_RunFrame

void ReelGame_RunFrame(void)

The slot machine's frame callback: reads the keys, runs the game's state (betting, spinning and stopping the reels, scoring the paylines, choosing reels to hold, showing a win) and builds all 128 sprites: the cursor, the title letters of a win, the frame, the hold lamps, the spin counter, the paylines, the reel symbols, the lever and the bottom bar.

Used by ReelGame_Run.

Line 351

ReelGame_InitTitle

void ReelGame_InitTitle(void)

Sets up the bouncing title letters of a win, the brightness wave of the screen's lines and the betting window, and starts at betting.

Used by ReelGame_Run.

Line 897

ReelGame_Run

void ReelGame_Run(void)

The slot machine: loads its backgrounds, sprites and palettes, fills each of the five reels with 21 random symbols (with eight placed symbols of rank 0 to 5), then runs until the player leaves: fading in, drawing the paylines on the canvas while betting or winning, and the jackpot's sparks and colour cycle while showing a win. Then fades out and frees its memory.

Used by ReelGame_Start.

Line 958

LzPack_ResetSlotBuckets

void LzPack_ResetSlotBuckets(void)

The LZ packer below: empties its 256 hash chains (one per byte value) and numbers its 1024 window nodes.

Used by LzPack_PackStream.

Line 1293

LzPack_InsertSlotNode

void LzPack_InsertSlotNode(s32 index)

Adds window position index to the chain of the byte it holds.

Used by LzPack_ConsumeSlotBytes.

Line 1308

LzPack_RemoveSlotNode

void LzPack_RemoveSlotNode(s32 slot)

Removes window position slot from its chain.

Used by LzPack_ConsumeSlotBytes.

Line 1320

LzPack_ConsumeSlotBytes

void LzPack_ConsumeSlotBytes(s32 start, s32 count, const u8 *input)

Reads count more input bytes into the window from position start, dropping the bytes they replace from their chains; past the end of the input the positions are marked empty (-1).

Used by LzPack_PackStream.

Line 1332

LzPack_CopyBufferedBytes

void LzPack_CopyBufferedBytes(u8 *destination)

Appends the finished group (a flag byte and up to eight items) to the output.

Used by LzPack_PackStream.

Line 1386

LzPack_FindWindowMatch

static __inline__ void LzPack_FindWindowMatch(s32 start)

Finds the longest earlier match (up to PACK_MATCH_MAX bytes, at most PACK_DISTANCE_MAX back) for the bytes at window position start; matchLen stays 1 for none.

Used by LzPack_PackStream.

Line 1399

LzPack_PackStream

UNUSED s32 LzPack_PackStream(const u8 *input, u8 *dst, s32 size)

Packs size bytes of input into dst with a small LZ scheme and returns the packed size. Each group starts with a flag byte, a set bit marking a match: two bytes of distance and length (lengths 2 to 16), or three for lengths up to 272; a match is put off by one byte when the next position matches further. A zero match ends the stream. Nothing in this game calls it.

Line 1460

Structures

Reel

struct Reel

One of the slot machine's five reels: how far it has turned, its 21 symbols, whether it is held, and the countdown to its stop (-1 until one starts).

FieldDeclared as
positions32 positionpixels, 16 a symbol
symbolsu8 symbols[21]
heldu8 held
stops8 stopframes

Used by ReelGame_Run, ReelGame_RunFrame.

Line 291

ReelWork

struct ReelWork

The slot machine's work in heap slot 45: its reels, state, bet and spins, keys, timer, winning lines, sprites and windows.

FieldDeclared as
reelsstruct Reel reels[5]
states32 state
cursors32 cursor
spinss32 spins
bets32 bet
keysu16 keys
directionu16 direction
pressedu16 pressed
repeatu16 repeat
unk0a4u8 unk0a4[4]
timers32 timer
winningLiness32 winningLines[7]
objstruct OamShadow obj[128]
windowstruct UiWindow *window
subWindowstruct UiWindow *subWindow
unk4d0u8 unk4d0[8]
scanlineOffsetsu16 scanlineOffsets[160]
phases32 phase

Used by ReelGame_InitTitle, ReelGame_Run, ReelGame_RunFrame.

Line 314

ReelSave

struct ReelSave

gGameState seen from +12, the base the bytes load: wonPrizes is gGameState.wonPrizes (through the field itself ReelGame_RunFrame differs 12)

FieldDeclared as
unk000u8 unk000[0x120]
wonPrizess8 wonPrizes[16]

Used by ReelGame_Run, ReelGame_RunFrame.

Line 339

Enumerations

ReelGameState

enum ReelGameState

The slot machine's states (ReelWork.state).

Value=
REEL_BETTING0Up and Down change the bet, A spins, B leaves
REEL_SPINNING1the reels spin until R or time stops each
REEL_WON2a payline won: a pause
REEL_SHOWING_WIN3the win is shown until A
REEL_CHOOSING_HOLDS5choose reels to hold, or pull the lever
REEL_DONE10the game ends
REEL_NO_WIN11no payline won: A to choose holds
REEL_OUT_OF_SPINS20the fourth spin lost: a pause, then the end

Line 301

Macros

REEL_SPARKS

#define REEL_SPARKS ((struct EffectStep *)Ram_MapCellBuffer)

The sparks of the jackpot, kept in the map cell buffer.

Used by ReelGame_InitTitle, ReelGame_Run.

Line 45

REEL_HEAP_SLOT

#define REEL_HEAP_SLOT 45

The slot machine's own work block (struct ReelWork), beside the battle effect blocks it borrows.

Used by ReelGame_InitTitle, ReelGame_Run, ReelGame_RunFrame.

Line 49

REEL_CANVAS_SIZE

#define REEL_CANVAS_SIZE (256 * 128)

The paylines' canvas: 256 x 128 pixels of 8-bit colour, shown on BG2 from its tile 212, where the third row of its map begins.

Used by ReelGame_Run, ReelGame_TransferCanvas.

Line 53

Also, macros without a comment: REEL_CANVAS_TILES, PACK_WINDOW_MASK, PACK_MATCH_MAX, PACK_DISTANCE_MAX, PACK_LOOKAHEAD.

fxdata.c

games/tbs/src/object/fxdata.c

Effect tables: object scripts, curves and lookup tables of the object bank.

Globals

gField_TileMessageOffsets

const u8 gField_TileMessageOffsets[6]

The message of each searchable tile code from 242 to 247, as an offset from MsgTileChecked and MsgTileResult.

Used by Field_SearchTile.

Line 24

gAnimation_ChildPaletteCycle

const u8 gAnimation_ChildPaletteCycle[8]

The palette cycle of Animation_ChildPaletteCycle ((gFrameCount >> 1) & 7).

Used by Animation_ApplyChildPalette.

Line 53

gBattleFx_ParticleEmitterScript

const s32 gBattleFx_ParticleEmitterScript[]

Grows from half size to full size, a step every 2 frames.

Used by BattleFx_StartRandomParticleEmitter, EffectRuntime_RunRisingObjectSequence.

Line 56

gBattleFx_RisingPulseScript

const s32 gBattleFx_RisingPulseScript[]

Pulses twice, then rests, over and over.

Used by ItemDisplay_RaiseAboveLeader.

Line 75

gBattleFx_ParticleScript

const s32 gBattleFx_ParticleScript[]

Rises for 60 frames, then disappears.

Used by BattleFx_ClearRandomParticles, BattleFx_StartRandomParticleEmitter, Object_InitializeSparkle.

Line 107

gDisplayTransition_NoiseWidths

const u8 gDisplayTransition_NoiseWidths[34]

The width of the bars of window transition mode 0, by progress.

Used by DisplayTransition_UpdateScanlineTable.

Line 120

gDisplayTransition_EdgeOffsets

const s8 gDisplayTransition_EdgeOffsets[32]

The wobble of the circle edge of window transition mode 8.

Used by DisplayTransition_UpdateScanlineTable.

Line 126

gDisplayTransition_DitherTable

const u8 gDisplayTransition_DitherTable[64]

0 to 63 shuffled: the order in which the dissolve sets the pixels.

Used by DisplayTransition_UpdateFrame.

Line 132

gBattlePalette_ChannelCurve

const u16 gBattlePalette_ChannelCurve[32]

Colour channel curves (0 to 31, to channels up to 0x7c00).

Used by BattleFx_BuildBuffer.

Line 140

gBattleFx_DefinitionTable

const struct BattleEffectEntry gBattleFx_DefinitionTable[131]

Speaker definitions: {sprite, portrait (0xff for none), idle line flags}. BattleFx_FindDefinition searches all 131; the last is the default.

Used by BattleFx_FindDefinition.

Line 163

gObjectMotion_VariantScripts

const s32 gObjectMotion_VariantScripts[97]

Squashes as many times as the variant (1 to 3): variant v starts at word (3 - v) * 32 and runs to the end. field.h declares it const u8[], and psynergy_effects.c adds (3 - v) << 7 bytes and reads it through an s32 *.

Used by ObjectMotion_SetVariantCallback.

Line 300

gObjectGroup_BlinkChildValues

const u8 gObjectGroup_BlinkChildValues[4]

A child value by frame ((gFrameCount >> 1) & 3).

Used by ObjectGroup_ApplyIndexedChildValue.

Line 344

gDisplayScroll_WaveSine

const s16 gDisplayScroll_WaveSine[256]

Sine times 4096, 256 steps to a turn.

Used by DisplayScroll_BuildAndSwapHBlankPage.

Line 347

gFieldFx_GroundParticleFrames

const s16 gFieldFx_GroundParticleFrames[80]

{dx, dy, tile, shape, size} for each of 16 frames.

Used by FieldFx_UpdateGroundParticles.

Line 383

gFieldFx_SparkleFrames

const struct SparkleFrame gFieldFx_SparkleFrames[32]

{dy, tile}

Used by FieldEffect_UpdateSparkles.

Line 403

gBattleFx_PulseScales

const u32 gBattleFx_PulseScales[3]

Two scales that alternate ((gFrameTick >> 2) & 1); nothing reads the third word.

Used by BattleFx_SetObjectAlternatingWords.

Line 440

gBattleFx_CommonParticleScript

const s32 gBattleFx_CommonParticleScript[]

[0] only frees the actor, +1 waits for it to arrive and frees it; +3 is gBattleFx_SourceHoldScript, which follows.

Used by BattleEffect_SpawnBurstParticleField, BattleFx_InitializeFallingFragment, BattleFx_RunSparkEmitter, BattleFx_RunVenusDjinnCapture, BattleFx_UpdateDriftingFallObject, BattleFx_UpdateOrbitingParticleFade, BattleFx_UpdateShrinkingOrbitObject, BattleFx_WanderAroundAnchor, FieldFx_RunForce, FieldFx_RunLiftOnTarget, FieldFx_SpawnRandomAngleTriplet, FieldFx_UpdateScaledArcObjectA, FieldFx_UpdateScaledArcObjectB, SpawnHeavyImpactEffect.

Line 444

gBattleFx_CyclePatternWords

const u16 gBattleFx_CyclePatternWords[16]

An angle for each value of the right, left, up and down bits of the +Control Pad; 0xffff for none.

Used by Input_GetDpadAngle.

Line 466

gBattleFx_BurstParticleObjectScript

const s32 gBattleFx_BurstParticleObjectScript[]

Word +4 is gBattleFx_HeavyImpactScript.

Used by FieldFx_RunForce, FieldFx_RunGrowth.

Line 476

gUnused_BattleFxBytes

const u8 gUnused_BattleFxBytes[4]

The same four bytes as gBattleFx_QuadrantModes; nothing reads them.

Line 482

gBattleFx_ShortEffectScript

const s32 gBattleFx_ShortEffectScript[]

The three scripts of gEffectScripts.

Line 491

gWorldMap_MarkerBlendCycle

const u8 gWorldMap_MarkerBlendCycle[32]

The brightness of the world map markers ((gFrameCount >> 1) & 31).

Used by Map_UpdateWorldMapMarkers.

Line 509

gWorldMap_CursorDirectionAngles

const u16 gWorldMap_CursorDirectionAngles[16]

An angle for each +Control Pad direction (eight of them); 0xffff for none.

Used by Map_UpdateWorldMapMarkers.

Line 515

Also, globals without a comment: gBattleFx_TargetRangeByMode, gBattleFx_MarkerParticleScript, gBattlePalette_ChannelCurveLight, gBattlePalette_ChannelCurveContrast, gBattleFx_SourceHoldScript, gBattleFx_FragmentScript, gBattleFx_QuadrantModes, gBattleFx_HeavyImpactScript, gBattleFx_MediumEffectScript, gBattleFx_LongEffectScript, gBattleFx_RandomChildValues.

object.c

games/tbs/src/object/object.c

The field object: the main loop and scene changes, random encounters, a field scene's actors, the leader's steps and the requests they raise, the scene's events, using items and Psynergy on the field, the map's markers, and the window transitions and colour buffer that the field and battles share. object_internal.h holds the includes and the few macros and types more than one part uses; the code is in the files under object/, included here in ROM order, each opening with what it holds (head -2 object/*.c). The ROM shows one object; the parts are ours, cut where one family ends and the next begins.

README.md in this folder gives the words, prefixes and spellings the parts share.

object_internal.h

games/tbs/src/object/object_internal.h

Unions

PolarOffsetPosition

union PolarOffsetPosition

The polar-offset routine walks three array elements. Named coordinates remain useful to callers; the union gives that array real storage.

FieldDeclared as
vectorstruct EffectVector vector
coordinatess32 coordinates[3]

Used by BattleFx_StartRandomParticleEmitter, Field_GetCollisionAheadOfLeader, ItemDisplay_EmitSparkles, Object_GetTriggerTileAheadOfCurrent, RevealMarker_EmitSparkles.

Line 113

Macros

EXIT_NONE

#define EXIT_NONE 999

Field_RunScene's result when the scene was not left (scene.c, run_scene.c).

Used by Field_RunScene, Scene_TakeExit.

Line 100

REGION_FIXED

#define REGION_FIXED(value) ((s32)((u32)(s32)(value) << 16))

A scene region's bounds, in pixels, as 16.16 fixed point.

Used by Field_CheckExitRegions, Scene_ApplyEntrance.

Line 121

PSYNERGY_EV

#define PSYNERGY_EV(phase) ((phase) << 28 | EVENT_PSYNERGY)

The flags of a Psynergy event (kind 5) in the given phase.

Used by Field_RunPsynergyEvents, Field_UsePsynergy.

Line 136

PSYNERGY_MESSAGE

#define PSYNERGY_MESSAGE(who, act, m)

Shows message m with the user's and the Psynergy's names, and waits.

Used by Field_UsePsynergy.

Line 140

Also, macros without a comment: ABILITY_ID, ACT_UNIT, ACT_PACKED, UNIT_NONE, ALLY_MAX, EXIT_RETREAT, FLAG_PSYNERGY_EFFECT, FLAG_PSYNERGY_TARGET, PSYNERGY_EV_ANY.

psynergy_effects.c

games/tbs/src/object/psynergy_effects.c

The field Psynergy and event object: the commands scene scripts run (waits, items, questions, destinations, actors, messages and the camera), moving on the field (views, jumps and climbing), the field's weather and wavy backgrounds, Djinn joining the party, each field Psynergy's effect, the effect slots its particles use, and the world map screen. psynergy_effects_internal.h holds the includes and the macros, types and inline helpers more than one part uses; the code is in the files under psynergy_effects/, included here in ROM order, each opening with what it holds (head -2 psynergy_effects/*.c). The ROM shows one object; the parts are ours, cut where one family ends and the next begins.

A field Psynergy reaches its effect through its field kind, the type column of games/tbs/src/game/actions.tsv; dispatch.c runs the kind's handlers.

README.md in this folder gives the words, prefixes and spellings the parts share.

psynergy_effects_internal.h

games/tbs/src/object/psynergy_effects_internal.h

Functions

BattleFx_MoveAfterimageHalfway

static inline void BattleFx_MoveAfterimageHalfway(union FieldObject *fieldObject)

Per-frame update of an afterimage: closes half the distance to the object it is linked to, on all three axes.

Used by BattleFx_HalveDistanceToTarget, ObjectMotion_MoveHalfwayTowardTarget.

Line 119

FieldFx_UpdateSceneSlots

static __inline__ void FieldFx_UpdateSceneSlots(void)

Runs the update of each of the 24 effect slots.

Used by BattleFx_UpdateAllEffectSlots, BattleFx_UpdateAllSlots.

Line 130

BattleFx_InitializeFallingFragment

static inline void BattleFx_InitializeFallingFragment(struct ItemBreakFragmentObject *fragment)

Both item fragments and Lift shed the same short-lived falling particle.

Used by BattleFx_SpawnFallingParticles, BattleFx_UpdateItemBreakFragment.

Line 227

Structures

Object

struct Object

A FieldActor seen with its position as one vector, to pass it whole. The gaps are FieldActor fields this view does not use.

FieldDeclared as
pad0u8 pad0[6]
angleu16 angle
posstruct EffectVector pos
pad1u8 pad1[14]
kindu8 kind
pad2u8 pad2[0x2d]
spritestruct AnimationObject *sprite

Used by BattleEffect_UpdatePhasedRadialParticle, FieldFx_RunDouse, Object_GetTriggerTileAheadOfCurrent.

Line 107

DescendingOrbitObject

struct DescendingOrbitObject

A FieldActor seen with the halfword at 0x64 unsigned and the one at 0x66 signed, as the bytes read them (FieldActor's own types change the code).

FieldDeclared as
unk00u8 unk00[8]
xs32 x
ys32 y
zs32 z
unk14u8 unk14[80]
timeru16 timer
angles16 angle

Used by BattleFx_UpdateDescendingOrbitObject.

Line 145

CaptureObject

struct CaptureObject

A FieldActor seen with the halfword at 0x5e (lifetime), which FieldActor does not name.

FieldDeclared as
unk00u8 unk00[8]
xs32 x
ys32 y
zs32 z
baseYs32 baseY
scaleXs32 scaleX
scaleYs32 scaleY
unk20u8 unk20[8]
gravitys32 gravity
unk2cu8 unk2c[4]
speeds32 speed
unk34u8 unk34[33]
modeu8 mode
unk56u8 unk56[5]
visibleu8 visible
unk5cu8 unk5c[2]
lifetimeu16 lifetime
unk60u8 unk60[4]
timeru16 timer
angleu16 angle
linkedObjectstruct FieldActor *linkedObject
callbackvoid (*callback)(union FieldObject *object)

Used by BattleFx_RunVenusDjinnCapture.

Line 157

WaveFxSprite

struct WaveFxSprite

A particle's sprite, seen as the two fields Douse and Mind Read set on it.

FieldDeclared as
unk00u32 unk00[2]
unk08u8 unk08
unk09_0u32 unk09_0 : 2
modeu32 mode : 2
unk09_4u32 unk09_4 : 4
unk0au8 unk0a[0x1c]
paletteu8 palette

Used by FieldFx_UpdateMindReadWave.

Line 205

ItemBreakFragmentObject

struct ItemBreakFragmentObject

A FieldActor seen with the halfword at 0x5e (its lifetime), which FieldActor does not name.

FieldDeclared as
reserved00u8 reserved00[72]
gravitys32 gravity
reserved4cu8 reserved4c[9]
motionFlagsu8 motionFlags
reserved56u8 reserved56[8]
lifetimeu16 lifetime

Used by BattleFx_InitializeFallingFragment, BattleFx_SpawnFallingParticles, BattleFx_UpdateItemBreakFragment.

Line 217

SparkObject

struct SparkObject

A FieldActor seen with the halfword at 0x5e (its lifetime), which FieldActor does not name.

FieldDeclared as
unk00u8 unk00[8]
xs32 x
ys32 y
zs32 z
unk14u8 unk14[4]
scaleXs32 scaleX
scaleYs32 scaleY
unk20u8 unk20[24]
anchorXs32 anchorXcentre of the sway (FieldActor's targetX)
unk3cu8 unk3c[12]
gravitys32 gravityas in FieldActor
unk4cu8 unk4c[9]
motionFlagsu8 motionFlagsas in FieldActor
unk56u8 unk56[8]
lifetimeu16 lifetime
unk60u8 unk60[4]
phases16 phasephase of the sway (128 frames a cycle)
unk66u8 unk66[6]
updatevoid (*update)(union FieldObject *object)

Used by BattleFx_RunSparkEmitter, BattleFx_SwayParticle.

Line 302

Macros

PSYNERGY_EFFECT_SLOT_COUNT

#define PSYNERGY_EFFECT_SLOT_COUNT 24

The effect slots of a Psynergy effect's scene (gEffectWork->slots).

Used by BattleFx_ClearActiveSlotsAndScheduleUpdates, FieldFx_RunRetreat, FieldFx_UpdateSceneSlots.

Line 100

DJINNI_0

#define DJINNI_0 300

gGameState.pendingDjinnEvent of Djinni 0 (requests.c, djinni.c).

Used by Djinn_ResolvePendingEvent, FieldObject_PlaceSceneActors, Field_RequestDjinnBattle.

Line 103

DEFINE_SHRINK_AND_DESTROY

#define DEFINE_SHRINK_AND_DESTROY(name, step)

Defines a per-frame update that spins an object 1/8 turn a frame while its scale changes by step, releasing the object once the scale falls below 0x3000.

Line 185

HEAP_SLOT_FX

#define HEAP_SLOT_FX 56

the Psynergy effect's work (gWorkSlot[56], gEffectWork)

Used by BattleEffect_CleanupSceneObjects, BattleFx_ClearActiveSlotsAndScheduleUpdates, BattleFx_DispatchRequestKind, BattleFx_InitializeSlots, BattleFx_LoadActionEffectResources, BattleFx_Run.

Line 202

ITEM_BREAK_SHARD_MAX

#define ITEM_BREAK_SHARD_MAX 24

The shards DEFINE_ITEM_BREAK_EFFECT's effects scatter.

Line 242

DEFINE_ITEM_BREAK_EFFECT

#define DEFINE_ITEM_BREAK_EFFECT(name, spawn)

Defines an effect cast with no target: spawn makes an object 16 pixels above the effect's position and 32 pixels to either side; each moves 24 pixels its way, then 24 shards scatter 8 to 32 pixels.

Line 247

Also, macros without a comment: ABOVE.

zonedata.c

games/tbs/src/object/zonedata.c

Globals

gWorldMap_EncounterRules

const s16 gWorldMap_EncounterRules[132]

The world map's encounter zones (struct TerrainRule): {terrain kind, terrain behavior (-1 for any), flag (-1, or a flag that turns the rule off once set), zone}, ended by kind -1.

Used by Encounter_ResolveWorldMapZoneAndBackdrop.

Line 7

gEncounter_AreaEntryTable

const u16 gEncounter_AreaEntryTable[160]

The encounter of each Djinni battle (Encounter_GetDjinnEnemyGroup): {zone, slot}.

Used by Encounter_GetDjinnEnemyGroup.

Line 19

On this page

Foldersbattle_cue.cGlobalsgEncounter_BattleMusiccolorfx.cFunctionsReelGame_StartGraphics_ScaleRgb555ReelGame_TransferCanvasPalette_DarkenSceneStepPalette_StepTowardResourceReelGame_DrawCanvasLineReelGame_RunFrameReelGame_InitTitleReelGame_RunLzPack_ResetSlotBucketsLzPack_InsertSlotNodeLzPack_RemoveSlotNodeLzPack_ConsumeSlotBytesLzPack_CopyBufferedBytesLzPack_FindWindowMatchLzPack_PackStreamStructuresReelReelWorkReelSaveEnumerationsReelGameStateMacrosREEL_SPARKSREEL_HEAP_SLOTREEL_CANVAS_SIZEfxdata.cGlobalsgField_TileMessageOffsetsgAnimation_ChildPaletteCyclegBattleFx_ParticleEmitterScriptgBattleFx_RisingPulseScriptgBattleFx_ParticleScriptgDisplayTransition_NoiseWidthsgDisplayTransition_EdgeOffsetsgDisplayTransition_DitherTablegBattlePalette_ChannelCurvegBattleFx_DefinitionTablegObjectMotion_VariantScriptsgObjectGroup_BlinkChildValuesgDisplayScroll_WaveSinegFieldFx_GroundParticleFramesgFieldFx_SparkleFramesgBattleFx_PulseScalesgBattleFx_CommonParticleScriptgBattleFx_CyclePatternWordsgBattleFx_BurstParticleObjectScriptgUnused_BattleFxBytesgBattleFx_ShortEffectScriptgWorldMap_MarkerBlendCyclegWorldMap_CursorDirectionAnglesobject.cobject_internal.hUnionsPolarOffsetPositionMacrosEXIT_NONEREGION_FIXEDPSYNERGY_EVPSYNERGY_MESSAGEpsynergy_effects.cpsynergy_effects_internal.hFunctionsBattleFx_MoveAfterimageHalfwayFieldFx_UpdateSceneSlotsBattleFx_InitializeFallingFragmentStructuresObjectDescendingOrbitObjectCaptureObjectWaveFxSpriteItemBreakFragmentObjectSparkObjectMacrosPSYNERGY_EFFECT_SLOT_COUNTDJINNI_0DEFINE_SHRINK_AND_DESTROYHEAP_SLOT_FXITEM_BREAK_SHARD_MAXDEFINE_ITEM_BREAK_EFFECTzonedata.cGlobalsgWorldMap_EncounterRulesgEncounter_AreaEntryTable