kettek2/wiki/games/newsboy/Newsboy_0x00/notes/map_format.txt

84 lines
2.1 KiB
Plaintext

The Newsboy Map format is loosely based on XDR, wherein the minimum block size is 4 bytes long and stored in network-byte order(big-endian).
The basic format is as follow:
<magic number, 1 block>
<name>
<int name_len, 1 block>
<string, name_len/4 * block>
</name>
<session>
<int ses_len, 1 block>
<string session, ses_len/4 * block>
</session>
<int location, 1 block> // cyberspace(0) or meatspace(1)
<int width, 1 block>
<int height, 1 block>
<cells>
. . .
<flags, 1 block>
<decor, 1+n blocks>
<int, 1 block>
<decor item, 1+n blocks>
<int animated, 1 block>
<int anim_len, 1 block>
<string anim, anim_len/4 * block>
<int set_len, 1 block>
<string set, set_len/4 * block>
<int face_len, 1 block>
<string face, face_len/4 * block>
<int frame_len, 1 block>
<string frame, frame_len/4 * block>
</decor item>
</decor>
. . .
</cells>
<player>
<int player_x, 1 block>
<int player_y, 1 block>
<int pl_set_len, 1 block>
<string pl_set, pl_set_len/4 * block>
<int pl_face_len, 1 block>
<string pl_face, pl_face_len/4 * block>
<int pl_frame, 1 block>
</player>
<entities>
<int entity_count, 1 block>
. . .
<int x, 1 block>
<int y, 1 block>
<int set_len, 1 blocks>
<string set, chars/4 * block>
<int face_len, 1 blocks>
<string face, chars/4 * block>
<int frame, 1 block>
. . .
</entities>
<triggers>
<int trigger_count, 1 block>
. . .
<int x>
<int y>
<int width>
<int height>
<int activator, 1 block> // player, enemy, neutral, enemy bullet, player bullet, etc.
<int type, 1 block> // collide, activate, hack
<int event_len, 1 block>
<string event_name, chars/4 * block>
. . .
</triggers>
<events>
<int event_count, 1 block>
. . .
<int name_len, 1 block>
<string name, chars/4 * block>
<int type, 1 block>
<int param_count, 1 block>
<params>
. . .
<int param_len, 1 block>
<string param_data, chars/4 * block>
. . .
</params>
. . .
</events>