Jump to content


Photo

Maze structure in PST


1 reply to this topic

#1 Avenger

Avenger
  • Modders
  • 3397 posts
  • Gender:Male
  • Location:Hungary

Posted 29 January 2011 - 08:41 AM

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


#2 Avenger

Avenger
  • Modders
  • 3397 posts
  • Gender:Male
  • Location:Hungary

Posted 29 January 2012 - 02:41 AM

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' -



Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users