editor/meddraw.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include "inferno.h"
#include "segment.h"
#include "segpoint.h"
#include "gameseg.h"
#include "gr.h"
#include "ui.h"
#include "editor/editor.h"
#include "wall.h"
#include "switch.h"
#include "key.h"
#include "mono.h"
#include "error.h"
#include "medlisp.h"
#include "u_mem.h"
#include "render.h"
#include "game.h"
#include "kdefs.h"
#include "func.h"
#include "textures.h"
#include "screens.h"
#include "texmap.h"
#include "object.h"
#include "fuelcen.h"

Classes

struct  seg_edge

Defines

#define SELECT_COLOR   BM_XRGB( 63/2 , 41/2 , 0/2)
#define FOUND_COLOR   BM_XRGB( 0/2 , 30/2 , 45/2)
#define WARNING_COLOR   BM_XRGB( 63/2 , 0/2 , 0/2)
#define AXIS_COLOR   BM_XRGB( 63/2 , 0/2 , 63/2)
#define PLAINSEG_COLOR   BM_XRGB( 45/2 , 45/2 , 45/2)
#define MARKEDSEG_COLOR   BM_XRGB( 0/2 , 63/2 , 0/2)
#define MARKEDSIDE_COLOR   BM_XRGB( 0/2 , 63/2 , 63/2)
#define CURSEG_COLOR   BM_XRGB( 63/2 , 63/2 , 63/2)
#define CURSIDE_COLOR   BM_XRGB( 63/2 , 63/2 , 0/2)
#define CUREDGE_COLOR   BM_XRGB( 0 , 63/2 , 0 )
#define GROUPSEG_COLOR   BM_XRGB( 0/2 , 0/2 , 63/2)
#define GROUPSIDE_COLOR   BM_XRGB( 63/2 , 0/2 , 45/2)
#define GROUP_COLOR   BM_XRGB( 0/2 , 45/2 , 0/2)
#define ROBOT_COLOR   BM_XRGB( 31 , 0 , 0 )
#define PLAYER_COLOR   BM_XRGB( 0 , 0 , 31 )
#define DOUBLE_BUFFER   1
#define ET_FACING   0
#define ET_NOTFACING   1
#define ET_NOTUSED   2
#define ET_NOTEXTANT   3
#define ET_EMPTY   255
#define MAX_EDGES   (MAX_VERTICES*4)
#define HASH(a, b)   ((a*5+b) % edge_list_size)
#define N_NORMAL_EDGES   12
#define N_EXTRA_EDGES   12
#define N_EDGES_PER_SEGMENT   (N_NORMAL_EDGES+N_EXTRA_EDGES)
#define swap(a, b)   do {int t; t=(a); (a)=(b); (b)=t;} while (0)
#define WALL_BLASTABLE_COLOR   BM_XRGB( 31/2 , 0/2 , 0/2)
#define WALL_DOOR_COLOR   BM_XRGB( 0/2 , 0/2 , 31/2)
#define WALL_DOOR_LOCKED_COLOR   BM_XRGB( 0/2 , 0/2 , 63/2)
#define WALL_AUTO_DOOR_COLOR   BM_XRGB( 0/2 , 31/2 , 0/2)
#define WALL_AUTO_DOOR_LOCKED_COLOR   BM_XRGB( 0/2 , 63/2 , 0/2)
#define WALL_ILLUSION_COLOR   BM_XRGB( 63/2 , 0/2 , 63/2)
#define TRIGGER_COLOR   BM_XRGB( 63/2 , 63/2 , 0/2)
#define TRIGGER_DAMAGE_COLOR   BM_XRGB( 63/2 , 63/2 , 0/2)

Functions

void draw_seg_objects (segment *seg)
void draw_line (int pnum0, int pnum1)
void draw_segment (segment *seg)
void check_segment (segment *seg)
void draw_seg_side (segment *seg, int side)
void draw_side_edge (segment *seg, int side, int edge)
int find_edge_num (int v0, int v1)
int find_edge (int v0, int v1, seg_edge **edge_ptr)
void add_edge (int v0, int v1, ubyte type)
void add_edges (segment *seg)
void draw_trigger_side (segment *seg, int side)
void draw_wall_side (segment *seg, int side)
void draw_special_wall (segment *seg, int side)
void draw_mine_sub (int segnum, int depth)
void draw_mine_edges (int automap_flag)
void draw_mine (segment *mine_ptr, int depth)
void draw_mine_all (segment *sp, int automap_flag)
void draw_selected_segments (void)
void draw_found_segments (void)
void draw_warning_segments (void)
void draw_group_segments (void)
void draw_special_segments (void)
int alloc_vert ()
void free_vert (int vert_num)
void draw_coordinate_axes (void)
void draw_world (grs_canvas *screen_canvas, editor_view *v, segment *mine_ptr, int depth)
void find_segments (short x, short y, grs_canvas *screen_canvas, editor_view *v, segment *mine_ptr, int depth)
void meddraw_init_views (grs_canvas *canvas)

Variables

int Search_mode = 0
int Search_x
int Search_y
int Automap_test = 0
int Show_triangulations = 0
int edge_colors [] = { 54, 59, 64 }
seg_edge edge_list [MAX_EDGES]
short used_list [MAX_EDGES]
int n_used
int edge_list_size
short edges []

Define Documentation

#define AXIS_COLOR   BM_XRGB( 63/2 , 0/2 , 63/2)
 

#define CUREDGE_COLOR   BM_XRGB( 0 , 63/2 , 0 )
 

#define CURSEG_COLOR   BM_XRGB( 63/2 , 63/2 , 63/2)
 

#define CURSIDE_COLOR   BM_XRGB( 63/2 , 63/2 , 0/2)
 

#define DOUBLE_BUFFER   1
 

#define ET_EMPTY   255
 

#define ET_FACING   0
 

#define ET_NOTEXTANT   3
 

#define ET_NOTFACING   1
 

#define ET_NOTUSED   2
 

#define FOUND_COLOR   BM_XRGB( 0/2 , 30/2 , 45/2)
 

#define GROUP_COLOR   BM_XRGB( 0/2 , 45/2 , 0/2)
 

#define GROUPSEG_COLOR   BM_XRGB( 0/2 , 0/2 , 63/2)
 

#define GROUPSIDE_COLOR   BM_XRGB( 63/2 , 0/2 , 45/2)
 

#define HASH a,
 )     ((a*5+b) % edge_list_size)
 

#define MARKEDSEG_COLOR   BM_XRGB( 0/2 , 63/2 , 0/2)
 

#define MARKEDSIDE_COLOR   BM_XRGB( 0/2 , 63/2 , 63/2)
 

#define MAX_EDGES   (MAX_VERTICES*4)
 

#define N_EDGES_PER_SEGMENT   (N_NORMAL_EDGES+N_EXTRA_EDGES)
 

#define N_EXTRA_EDGES   12
 

#define N_NORMAL_EDGES   12
 

#define PLAINSEG_COLOR   BM_XRGB( 45/2 , 45/2 , 45/2)
 

#define PLAYER_COLOR   BM_XRGB( 0 , 0 , 31 )
 

#define ROBOT_COLOR   BM_XRGB( 31 , 0 , 0 )
 

#define SELECT_COLOR   BM_XRGB( 63/2 , 41/2 , 0/2)
 

#define swap a,
 )     do {int t; t=(a); (a)=(b); (b)=t;} while (0)
 

#define TRIGGER_COLOR   BM_XRGB( 63/2 , 63/2 , 0/2)
 

#define TRIGGER_DAMAGE_COLOR   BM_XRGB( 63/2 , 63/2 , 0/2)
 

#define WALL_AUTO_DOOR_COLOR   BM_XRGB( 0/2 , 31/2 , 0/2)
 

#define WALL_AUTO_DOOR_LOCKED_COLOR   BM_XRGB( 0/2 , 63/2 , 0/2)
 

#define WALL_BLASTABLE_COLOR   BM_XRGB( 31/2 , 0/2 , 0/2)
 

#define WALL_DOOR_COLOR   BM_XRGB( 0/2 , 0/2 , 31/2)
 

#define WALL_DOOR_LOCKED_COLOR   BM_XRGB( 0/2 , 0/2 , 63/2)
 

#define WALL_ILLUSION_COLOR   BM_XRGB( 63/2 , 0/2 , 63/2)
 

#define WARNING_COLOR   BM_XRGB( 63/2 , 0/2 , 0/2)
 


Function Documentation

void add_edge int  v0,
int  v1,
ubyte  type
 

void add_edges segment seg  ) 
 

int alloc_vert  ) 
 

void check_segment segment seg  ) 
 

void draw_coordinate_axes void   ) 
 

void draw_found_segments void   ) 
 

void draw_group_segments void   ) 
 

void draw_line int  pnum0,
int  pnum1
 

void draw_mine segment mine_ptr,
int  depth
 

void draw_mine_all segment sp,
int  automap_flag
 

void draw_mine_edges int  automap_flag  ) 
 

void draw_mine_sub int  segnum,
int  depth
 

void draw_seg_objects segment seg  ) 
 

void draw_seg_side segment seg,
int  side
 

void draw_segment segment seg  ) 
 

void draw_selected_segments void   ) 
 

void draw_side_edge segment seg,
int  side,
int  edge
 

void draw_special_segments void   ) 
 

void draw_special_wall segment seg,
int  side
 

void draw_trigger_side segment seg,
int  side
 

void draw_wall_side segment seg,
int  side
 

void draw_warning_segments void   ) 
 

void draw_world grs_canvas screen_canvas,
editor_view v,
segment mine_ptr,
int  depth
 

int find_edge int  v0,
int  v1,
seg_edge **  edge_ptr
 

int find_edge_num int  v0,
int  v1
 

void find_segments short  x,
short  y,
grs_canvas screen_canvas,
editor_view v,
segment mine_ptr,
int  depth
 

void free_vert int  vert_num  ) 
 

void meddraw_init_views grs_canvas canvas  ) 
 


Variable Documentation

int Automap_test = 0
 

int edge_colors[] = { 54, 59, 64 }
 

seg_edge edge_list[MAX_EDGES]
 

int edge_list_size
 

short edges[]
 

Initial value:

 {
                0*8+1,  
                0*8+3,  
                0*8+4,  
                1*8+2,  
                1*8+5,  
                2*8+3,  
                2*8+6,  
                3*8+7,  
                4*8+5,  
                4*8+7,  
                5*8+6,  
                6*8+7,  

                0*8+5,  
                0*8+7,  
                1*8+3,  
                2*8+5,  
                2*8+7,  
                4*8+6,  



                1*8+4,  
                3*8+4,  
                0*8+2,  
                1*8+6,  
                3*8+6,  
                5*8+7,  
}

int n_used
 

int Search_mode = 0
 

int Search_x
 

int Search_y
 

int Show_triangulations = 0
 

short used_list[MAX_EDGES]
 


Generated on Mon Aug 28 20:55:31 2006 for D1X-Rebirth by  doxygen 1.4.6