Skip to content

scaled objects

lepelog edited this page Jun 21, 2020 · 4 revisions

scaled objects

scaled objects appear in bzs files, there exist a few variants:

  • SOBS
  • SOBJ
  • STAS
  • STAG
  • SNDT
struct STAG {
  int params1;
  int params2;
  float posx;
  float posy;
  float posz;
  float sizex;
  float sizey;
  float sizez;
  short anglex;
  short angley;
  short anglez;
  short id; // only last 10 bits are counting up, other bits are unknown, has to be unique for objects loaded at once
  char[8] name;
}

STAG

STAG are objects found in stage and room files and are always tied to a layer. Their structure is similar to other objects and they include size information.

param1 and param2 vary from object to object

Common objects by name:

EvntTag

Tag used to trigger events, param1 structure:

FF 00 00 00   either 0xFF, 0xFC or 0xFB (purpose unknown)
00 FF 00 00   sceneflag that makes this event trigger active
00 00 FF 00   sceneflag set after the event and also the flag that deactivates the trigger
00 00 00 FF   Index of the event (EVNT) that is triggered

unk2 is always 0xFFFFFFFF

EvfTag

Tag used to trigger events but in contrast to EvntTag on the basis of storyflags and not sceneflags.
Structure of unk1:

1100 0000 0000 0000 0000 0000 0000 0000   bits are always set, probably unused
0011 1111 1111 1000 0000 0000 0000 0000   storyflag that makes this event trigger active
0000 0000 0000 0111 1111 1111 0000 0000   storyflag that sets after the event and also deactivates the event
0000 0000 0000 0000 0000 0000 1111 1111   Index of the event (EVNT) that is triggered

SwAreaT

Tag used to (un)set scene/story flags unconditionally in certain areas, structure of param1:

FF 00 00 00   always 0xFF
00 FF 00 00   unknown, either 0xFF or 0xFE
00 00 FF 00   unset sceneflag
00 00 00 FF   set sceneflag
anglex: 0000 0111 1111 1111 set storyflag, other bits are always set and unused
anglez: 0000 0111 1111 1111 unset storyflag, otherbits are always set and unused

DieTag

Tag used to set a sceneflag on enemy defeat
Structure of unk1:

0000 0000 0000 0000 0000 1111 1111 0000 set sceneflag, all other bits are not documented yet

ScChang

Loadingzone, usually triggers on the ground in the specified area, but can also trigger in the air, also used for the sand sea docks. For loadingzones, that change their destination over time the game uses multiple loadinzones on top of each other and storyflags to only enable the right one (examples boko base, groose CS in faron)
param1 structure:

FF 00 00 00   sceneflag used to activate the loadingzone
00 FF FF 00   undocumented
00 00 00 FF   exit index (SCEN), where to send the player
anglex: 0000 0111 1111 1111 storyflag to enable the loadingzone
anglez: 0000 0111 1111 1111 storyflag to disable the loadingzone
Clone this wiki locally