Jump to content

Maze structure in PST


Avenger

Recommended Posts

The 1720 bytes of the maze structure were unknown so far.

The rough breakup of the structure is:

 

64 maze_entries (64x26 bytes)

1 maze_header (the last 14 dwords)

 

In GemRB we have:

 

struct maze_entry {

ieDword unknown00;

ieDword accessible; //used in generation it is 1 for accessible areas

ieDword valid; //used in generation, it is 1 for used areas

ieDword trapped; //1 or 0, if 1 see next dword

ieDword traptype; //0-2 - enable TRAP(A|B|C) in the area

ieWord walls; //bitfield (1-east, 2-west,4-north,8-south)

ieDword unknown16;

};

 

struct maze_header {

ieDword maze_sizex, maze_sizey;

ieDword pos1x, pos1y; //nordom's position

ieDword pos2x, pos2y; //main hall position

ieDword pos3x, pos3y; //unknown

ieDword pos4x, pos4y; //unknown

ieDword trapcount; //based on map size

ieDword initialized; //set to 1

ieDword unknown2c; //unknown

ieDword unknown30; //unknown

};

 

Just for completeness, we also got an easy maze 2da for the built-in 3x3 initial maze:

2DA V1.0
3
	  FIELD_0   TRAPTYPE  WALLS	 FIELD_16
AR1301	1		 -1		5		 0
AR1309	1		 -1		13		0
AR1317	1		 0		 9		 0
AR1302	1		 -1		3		 0
AR1310	1		 -1		6		 0
AR1318	1		 -1		11		0
AR1303	1		 -1		6		 0
AR1311	1		 -1		9		 0
AR1319	1		 -1		2		 0

Link to comment

Header:

ieDword pos3x, pos3y; the foyer entrance position.

ieDword pos4x, pos4y; the engine room position. - this is -1,-1 (accessible from foyer) once you repaired the maze.

 

unknown00 in header is 'override' - or special room (like nordom's room)

unknown16 in header is 'visited' -

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...