Data Structures | Defines | Typedefs | Enumerations

sp_lev.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  opvar
struct  splev_var
struct  splevstack
struct  sp_frame
struct  sp_coder
struct  randline
struct  opcmp
struct  opjmp
union  str_or_len
struct  lev_init
struct  door
struct  room_door
struct  trap
struct  monster
struct  object
struct  altar
struct  drawbridge
struct  walk
struct  digpos
struct  lad
struct  stair
struct  region
struct  terrain
struct  replaceterrain
struct  lev_region
struct  gold
struct  engraving
struct  fountain
struct  sink
struct  pool
struct  _room
struct  mazepart
struct  corridor
struct  _opcode
struct  sp_lev
struct  spill
struct  lc_funcdefs
struct  lc_vardefs

Defines

#define W_NORTH   1
#define W_SOUTH   2
#define W_EAST   4
#define W_WEST   8
#define W_ANY   (W_NORTH|W_SOUTH|W_EAST|W_WEST)
#define MAP_X_LIM   76
#define MAP_Y_LIM   21
#define NOTELEPORT   0x00000001L
#define HARDFLOOR   0x00000002L
#define NOMMAP   0x00000004L
#define SHORTSIGHTED   0x00000008L
#define ARBOREAL   0x00000010L
#define NOFLIPX   0x00000020L
#define NOFLIPY   0x00000040L
#define MAZELEVEL   0x00000080L
#define PREMAPPED   0x00000100L
#define SHROUD   0x00000200L
#define STORMY   0x00000400L
#define GRAVEYARD   0x00000800L
#define LVLINIT_NONE   0
#define LVLINIT_SOLIDFILL   1
#define LVLINIT_MAZEGRID   2
#define LVLINIT_MINES   3
#define MAX_CONTAINMENT   10
#define MAX_REGISTERS   10
#define MAX_NESTED_ROOMS   5
#define SPCODER_MAX_RUNTIME   65536
#define SP_M_V_PEACEFUL   0
#define SP_M_V_ALIGN   1
#define SP_M_V_ASLEEP   2
#define SP_M_V_APPEAR   3
#define SP_M_V_NAME   4
#define SP_M_V_FEMALE   5
#define SP_M_V_INVIS   6
#define SP_M_V_CANCELLED   7
#define SP_M_V_REVIVED   8
#define SP_M_V_AVENGE   9
#define SP_M_V_FLEEING   10
#define SP_M_V_BLINDED   11
#define SP_M_V_PARALYZED   12
#define SP_M_V_STUNNED   13
#define SP_M_V_CONFUSED   14
#define SP_M_V_SEENTRAPS   15
#define SP_M_V_END   16
#define SP_O_V_SPE   0
#define SP_O_V_CURSE   1
#define SP_O_V_CORPSENM   2
#define SP_O_V_NAME   3
#define SP_O_V_QUAN   4
#define SP_O_V_BURIED   5
#define SP_O_V_LIT   6
#define SP_O_V_ERODED   7
#define SP_O_V_LOCKED   8
#define SP_O_V_TRAPPED   9
#define SP_O_V_RECHARGED   10
#define SP_O_V_INVIS   11
#define SP_O_V_GREASED   12
#define SP_O_V_BROKEN   13
#define SP_O_V_COORD   14
#define SP_O_V_END   15
#define SP_OBJ_CONTENT   0x1
#define SP_OBJ_CONTAINER   0x2
#define SPOVAR_NULL   0x00
#define SPOVAR_INT   0x01
#define SPOVAR_STRING   0x02
#define SPOVAR_VARIABLE   0x03
#define SPOVAR_COORD   0x04
#define SPOVAR_REGION   0x05
#define SPOVAR_MAPCHAR   0x06
#define SPOVAR_MONST   0x07
#define SPOVAR_OBJ   0x08
#define SPOVAR_SEL   0x09
#define SPOVAR_ARRAY   0x40
#define SP_COORD_X(l)   (l & 0xff)
#define SP_COORD_Y(l)   ((l >> 16) & 0xff)
#define SP_COORD_PACK(x, y)   ((( x ) & 0xff) + ((( y ) & 0xff) << 16))
#define SP_REGION_X1(l)   (l & 0xff)
#define SP_REGION_Y1(l)   ((l >> 8) & 0xff)
#define SP_REGION_X2(l)   ((l >> 16) & 0xff)
#define SP_REGION_Y2(l)   ((l >> 24) & 0xff)
#define SP_REGION_PACK(x1, y1, x2, y2)   ((( x1 ) & 0xff) + ((( y1 ) & 0xff) << 8) + ((( x2 ) & 0xff) << 16) + ((( y2 ) & 0xff) << 24))
#define SP_MONST_CLASS(l)   (l & 0xff)
#define SP_MONST_PM(l)   ((l >> 8) & 0xffff)
#define SP_MONST_PACK(m, c)   ((( m ) << 8) + ((char)( c )))
#define SP_OBJ_CLASS(l)   (l & 0xff)
#define SP_OBJ_TYP(l)   ((l >> 8) & 0xffff)
#define SP_OBJ_PACK(o, c)   ((( o ) << 8) + ((char)( c )))
#define SP_MAPCHAR_TYP(l)   (l & 0xff)
#define SP_MAPCHAR_LIT(l)   ((l >> 8) & 0xff)
#define SP_MAPCHAR_PACK(typ, lit)   ((( lit ) << 8) + ((char)( typ )))
#define SP_CPUFLAG_LT   1
#define SP_CPUFLAG_GT   2
#define SP_CPUFLAG_EQ   4
#define SP_CPUFLAG_ZERO   8

Typedefs

typedef union str_or_len Str_or_Len
typedef struct _room room

Enumerations

enum  opcode_defs {
  SPO_NULL = 0, SPO_MESSAGE, SPO_MONSTER, SPO_OBJECT,
  SPO_ENGRAVING, SPO_ROOM, SPO_SUBROOM, SPO_DOOR,
  SPO_STAIR, SPO_LADDER, SPO_ALTAR, SPO_FOUNTAIN,
  SPO_SINK, SPO_POOL, SPO_TRAP, SPO_GOLD,
  SPO_CORRIDOR, SPO_LEVREGION, SPO_DRAWBRIDGE, SPO_MAZEWALK,
  SPO_NON_DIGGABLE, SPO_NON_PASSWALL, SPO_WALLIFY, SPO_MAP,
  SPO_ROOM_DOOR, SPO_REGION, SPO_CMP, SPO_JMP,
  SPO_JL, SPO_JLE, SPO_JG, SPO_JGE,
  SPO_JE, SPO_JNE, SPO_SPILL, SPO_TERRAIN,
  SPO_REPLACETERRAIN, SPO_EXIT, SPO_ENDROOM, SPO_POP_CONTAINER,
  SPO_PUSH, SPO_POP, SPO_RN2, SPO_DEC,
  SPO_INC, SPO_MATH_ADD, SPO_MATH_SUB, SPO_MATH_MUL,
  SPO_MATH_DIV, SPO_MATH_MOD, SPO_COPY, SPO_MON_GENERATION,
  SPO_END_MONINVENT, SPO_GRAVE, SPO_FRAME_PUSH, SPO_FRAME_POP,
  SPO_CALL, SPO_RETURN, SPO_INITLEVEL, SPO_LEVEL_FLAGS,
  SPO_LEVEL_SOUNDS, SPO_WALLWALK, SPO_VAR_INIT, SPO_SHUFFLE_ARRAY,
  SPO_DICE, SPO_SEL_ADD, SPO_SEL_POINT, SPO_SEL_RECT,
  SPO_SEL_FILLRECT, SPO_SEL_LINE, SPO_SEL_RNDLINE, SPO_SEL_GROW,
  SPO_SEL_FLOOD, SPO_SEL_RNDCOORD, SPO_SEL_ELLIPSE, SPO_SEL_FILTER,
  MAX_SP_OPCODES
}

Define Documentation

#define ARBOREAL   0x00000010L

Referenced by spo_level_flags().

#define GRAVEYARD   0x00000800L

Referenced by spo_level_flags().

#define HARDFLOOR   0x00000002L

Referenced by spo_level_flags().

#define LVLINIT_MAZEGRID   2

Referenced by splev_initlev().

#define LVLINIT_MINES   3

Referenced by splev_initlev().

#define LVLINIT_NONE   0

Referenced by splev_initlev().

#define LVLINIT_SOLIDFILL   1

Referenced by splev_initlev().

#define MAP_X_LIM   76
#define MAP_Y_LIM   21
#define MAX_CONTAINMENT   10

Referenced by create_object(), and sp_level_coder().

#define MAX_NESTED_ROOMS   5

Referenced by sp_level_coder(), and spo_room().

#define MAX_REGISTERS   10
#define MAZELEVEL   0x00000080L

Referenced by spo_level_flags().

#define NOFLIPX   0x00000020L

Referenced by spo_level_flags().

#define NOFLIPY   0x00000040L

Referenced by spo_level_flags().

#define NOMMAP   0x00000004L

Referenced by spo_level_flags().

#define NOTELEPORT   0x00000001L

Referenced by spo_level_flags().

#define PREMAPPED   0x00000100L

Referenced by spo_level_flags().

#define SHORTSIGHTED   0x00000008L

Referenced by spo_level_flags().

#define SHROUD   0x00000200L

Referenced by spo_level_flags().

#define SP_COORD_PACK (   x,
 
)    ((( x ) & 0xff) + ((( y ) & 0xff) << 16))

Referenced by opvar_new_coord().

#define SP_COORD_X (   l )    (l & 0xff)
#define SP_COORD_Y (   l )    ((l >> 16) & 0xff)
#define SP_CPUFLAG_EQ   4
#define SP_CPUFLAG_GT   2
#define SP_CPUFLAG_LT   1
#define SP_CPUFLAG_ZERO   8
#define SP_M_V_ALIGN   1

Referenced by spo_monster().

#define SP_M_V_APPEAR   3

Referenced by spo_monster().

#define SP_M_V_ASLEEP   2

Referenced by spo_monster().

#define SP_M_V_AVENGE   9

Referenced by spo_monster().

#define SP_M_V_BLINDED   11

Referenced by spo_monster().

#define SP_M_V_CANCELLED   7

Referenced by spo_monster().

#define SP_M_V_CONFUSED   14

Referenced by spo_monster().

#define SP_M_V_END   16

Referenced by spo_monster().

#define SP_M_V_FEMALE   5

Referenced by spo_monster().

#define SP_M_V_FLEEING   10

Referenced by spo_monster().

#define SP_M_V_INVIS   6

Referenced by spo_monster().

#define SP_M_V_NAME   4

Referenced by spo_monster().

#define SP_M_V_PARALYZED   12

Referenced by spo_monster().

#define SP_M_V_PEACEFUL   0

Referenced by spo_monster().

#define SP_M_V_REVIVED   8

Referenced by spo_monster().

#define SP_M_V_SEENTRAPS   15

Referenced by spo_monster().

#define SP_M_V_STUNNED   13

Referenced by spo_monster().

#define SP_MAPCHAR_LIT (   l )    ((l >> 8) & 0xff)
#define SP_MAPCHAR_PACK (   typ,
  lit 
)    ((( lit ) << 8) + ((char)( typ )))
#define SP_MAPCHAR_TYP (   l )    (l & 0xff)
#define SP_MONST_CLASS (   l )    (l & 0xff)

Referenced by spo_monster(), and spo_object().

#define SP_MONST_PACK (   m,
 
)    ((( m ) << 8) + ((char)( c )))
#define SP_MONST_PM (   l )    ((l >> 8) & 0xffff)

Referenced by spo_monster(), and spo_object().

#define SP_O_V_BROKEN   13

Referenced by spo_object().

#define SP_O_V_BURIED   5

Referenced by spo_object().

#define SP_O_V_COORD   14

Referenced by spo_object().

#define SP_O_V_CORPSENM   2

Referenced by spo_object().

#define SP_O_V_CURSE   1

Referenced by spo_object().

#define SP_O_V_END   15

Referenced by spo_object().

#define SP_O_V_ERODED   7

Referenced by spo_object().

#define SP_O_V_GREASED   12

Referenced by spo_object().

#define SP_O_V_INVIS   11

Referenced by spo_object().

#define SP_O_V_LIT   6

Referenced by spo_object().

#define SP_O_V_LOCKED   8

Referenced by spo_object().

#define SP_O_V_NAME   3

Referenced by spo_object().

#define SP_O_V_QUAN   4

Referenced by spo_object().

#define SP_O_V_RECHARGED   10

Referenced by spo_object().

#define SP_O_V_SPE   0

Referenced by spo_object().

#define SP_O_V_TRAPPED   9

Referenced by spo_object().

#define SP_OBJ_CLASS (   l )    (l & 0xff)

Referenced by spo_object().

#define SP_OBJ_CONTAINER   0x2

Referenced by create_object().

#define SP_OBJ_CONTENT   0x1

Referenced by create_object().

#define SP_OBJ_PACK (   o,
 
)    ((( o ) << 8) + ((char)( c )))
#define SP_OBJ_TYP (   l )    ((l >> 8) & 0xffff)

Referenced by spo_object().

#define SP_REGION_PACK (   x1,
  y1,
  x2,
  y2 
)    ((( x1 ) & 0xff) + ((( y1 ) & 0xff) << 8) + ((( x2 ) & 0xff) << 16) + ((( y2 ) & 0xff) << 24))
#define SP_REGION_X1 (   l )    (l & 0xff)
#define SP_REGION_X2 (   l )    ((l >> 16) & 0xff)
#define SP_REGION_Y1 (   l )    ((l >> 8) & 0xff)
#define SP_REGION_Y2 (   l )    ((l >> 24) & 0xff)
#define SPCODER_MAX_RUNTIME   65536

Referenced by sp_level_coder().

#define SPOVAR_ARRAY   0x40
#define SPOVAR_COORD   0x04
#define SPOVAR_INT   0x01
#define SPOVAR_MAPCHAR   0x06
#define SPOVAR_MONST   0x07
#define SPOVAR_NULL   0x00
#define SPOVAR_OBJ   0x08
#define SPOVAR_REGION   0x05
#define SPOVAR_SEL   0x09
#define SPOVAR_STRING   0x02
#define SPOVAR_VARIABLE   0x03
#define STORMY   0x00000400L

Referenced by spo_level_flags().

#define W_ANY   (W_NORTH|W_SOUTH|W_EAST|W_WEST)

Referenced by fixup_special().

#define W_EAST   4
#define W_NORTH   1
#define W_SOUTH   2
#define W_WEST   8

Typedef Documentation

typedef struct _room room
typedef union str_or_len Str_or_Len

Enumeration Type Documentation

Enumerator:
SPO_NULL 
SPO_MESSAGE 
SPO_MONSTER 
SPO_OBJECT 
SPO_ENGRAVING 
SPO_ROOM 
SPO_SUBROOM 
SPO_DOOR 
SPO_STAIR 
SPO_LADDER 
SPO_ALTAR 
SPO_FOUNTAIN 
SPO_SINK 
SPO_POOL 
SPO_TRAP 
SPO_GOLD 
SPO_CORRIDOR 
SPO_LEVREGION 
SPO_DRAWBRIDGE 
SPO_MAZEWALK 
SPO_NON_DIGGABLE 
SPO_NON_PASSWALL 
SPO_WALLIFY 
SPO_MAP 
SPO_ROOM_DOOR 
SPO_REGION 
SPO_CMP 
SPO_JMP 
SPO_JL 
SPO_JLE 
SPO_JG 
SPO_JGE 
SPO_JE 
SPO_JNE 
SPO_SPILL 
SPO_TERRAIN 
SPO_REPLACETERRAIN 
SPO_EXIT 
SPO_ENDROOM 
SPO_POP_CONTAINER 
SPO_PUSH 
SPO_POP 
SPO_RN2 
SPO_DEC 
SPO_INC 
SPO_MATH_ADD 
SPO_MATH_SUB 
SPO_MATH_MUL 
SPO_MATH_DIV 
SPO_MATH_MOD 
SPO_COPY 
SPO_MON_GENERATION 
SPO_END_MONINVENT 
SPO_GRAVE 
SPO_FRAME_PUSH 
SPO_FRAME_POP 
SPO_CALL 
SPO_RETURN 
SPO_INITLEVEL 
SPO_LEVEL_FLAGS 
SPO_LEVEL_SOUNDS 
SPO_WALLWALK 
SPO_VAR_INIT 
SPO_SHUFFLE_ARRAY 
SPO_DICE 
SPO_SEL_ADD 
SPO_SEL_POINT 
SPO_SEL_RECT 
SPO_SEL_FILLRECT 
SPO_SEL_LINE 
SPO_SEL_RNDLINE 
SPO_SEL_GROW 
SPO_SEL_FLOOD 
SPO_SEL_RNDCOORD 
SPO_SEL_ELLIPSE 
SPO_SEL_FILTER 
MAX_SP_OPCODES