main/render.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "inferno.h"
#include "segment.h"
#include "error.h"
#include "bm.h"
#include "texmap.h"
#include "mono.h"
#include "render.h"
#include "game.h"
#include "object.h"
#include "laser.h"
#include "textures.h"
#include "screens.h"
#include "segpoint.h"
#include "wall.h"
#include "texmerge.h"
#include "physics.h"
#include "3d.h"
#include "gameseg.h"
#include "vclip.h"
#include "lighting.h"
#include "fuelcen.h"
#include "newdemo.h"
#include "automap.h"
#include "endlevel.h"
#include "key.h"
#include "newmenu.h"
#include "u_mem.h"
#include "piggy.h"
#include "d_io.h"

Classes

struct  window
struct  sort_item

Defines

#define INITIAL_LOCAL_LIGHT   (F1_0/4)
#define DEFAULT_RENDER_DEPTH   16
#define _search_mode   0
#define FLASH_CYCLE_RATE   f1_0
#define CROSS_WIDTH   i2f(8)
#define CROSS_HEIGHT   i2f(8)
#define RED   BM_XRGB(63,0,0)
#define WHITE   BM_XRGB(63,63,63)
#define SORT_LIST_SIZE   50

Functions

void render_mine (int start_seg_num, fix eye_offset)
int toggle_outline_mode (void)
int toggle_show_only_curside (void)
void draw_outline (int nverts, g3s_point **pointlist)
void free_reticle_canvas ()
void show_reticle (int force_big)
void draw_3d_reticle (fix eye_offset)
void flash_frame ()
void render_face (int segnum, int sidenum, int nv, short *vp, int tmap1, int tmap2, uvl *uvlp, vms_vector *norm)
void render_side (segment *segp, int sidenum)
void do_render_object (int objnum)
void render_start_frame ()
g3s_codes rotate_list (int nv, short *pointnumlist)
void project_list (int nv, short *pointnumlist)
void render_segment (int segnum)
void outline_seg_side (segment *seg, int _side, int edge, int vert)
ubyte code_window_point (fix x, fix y, window *w)
void draw_window_box (int color, short left, short top, short right, short bot)
int matt_find_connect_side (int seg0, int seg1)
int find_seg_side (segment *seg, short *verts, int notside)
int find_joining_side_norms (vms_vector *norm0_0, vms_vector *norm0_1, vms_vector *norm1_0, vms_vector *norm1_1, vms_vector **pnt0, vms_vector **pnt1, segment *seg, int s0, int s1)
int compare_children (segment *seg, short c0, short c1)
int sort_seg_children (segment *seg, int n_children, short *child_list)
void add_obj_to_seglist (int objnum, int listnum)
int sort_func (sort_item *a, sort_item *b)
void build_object_lists (int n_segs)
void render_frame (fix eye_offset)
void build_segment_list (int start_seg_num)

Variables

int Clear_window_color = -1
int Clear_window = 2
int RL_framecount = -1
short Rotated_last [MAX_VERTICES]
objectViewer = NULL
vms_vector Viewer_eye
int N_render_segs
fix Render_zoom = 0x9000
ubyte object_rendered [MAX_OBJECTS]
int Render_depth = DEFAULT_RENDER_DEPTH
int Detriangulation_on = 1
fix Face_reflectivity = (F1_0/2)
int Outline_mode = 0
int Show_only_curside = 0
grs_canvasreticle_canvas = NULL
fix flash_scale
fix flash_rate = FLASH_CYCLE_RATE
fix Tulate_min_dot = (F1_0/4)
fix Min_n0_n1_dot = (F1_0*15/16)
int draw_boxes = 0
int window_check = 1
int draw_edges = 0
int new_seg_sorting = 1
int pre_draw_segs = 0
int no_migrate_segs = 1
int migrate_objects = 1
int behind_check = 1
int check_window_check = 0
char visited2 [MAX_SEGMENTS]
char visited [MAX_SEGMENTS]
short Render_list [MAX_RENDER_SEGS]
short Seg_depth [MAX_RENDER_SEGS]
ubyte processed [MAX_RENDER_SEGS]
int lcnt_save
int scnt_save
short render_pos [MAX_SEGMENTS]
window render_windows [MAX_RENDER_SEGS]
short render_obj_list [MAX_RENDER_SEGS+N_EXTRA_OBJ_LISTS][OBJS_PER_SEG]
int Window_clip_left
int Window_clip_top
int Window_clip_right
int Window_clip_bot
int Two_sides_to_edge [6][6][2]
int Edge_to_sides [8][8][2]
int ssc_total = 0
int ssc_swaps = 0
sort_item sort_list [SORT_LIST_SIZE]
int n_sort_items
int Use_player_head_angles = 0
vms_angvec Player_head_angles
int Num_tmaps_drawn
int Total_pixels
int Rear_view = 0
int first_terminal_seg

Define Documentation

#define _search_mode   0
 

#define CROSS_HEIGHT   i2f(8)
 

#define CROSS_WIDTH   i2f(8)
 

#define DEFAULT_RENDER_DEPTH   16
 

#define FLASH_CYCLE_RATE   f1_0
 

#define INITIAL_LOCAL_LIGHT   (F1_0/4)
 

#define RED   BM_XRGB(63,0,0)
 

#define SORT_LIST_SIZE   50
 

#define WHITE   BM_XRGB(63,63,63)
 


Function Documentation

void add_obj_to_seglist int  objnum,
int  listnum
 

void build_object_lists int  n_segs  ) 
 

void build_segment_list int  start_seg_num  ) 
 

ubyte code_window_point fix  x,
fix  y,
window w
 

int compare_children segment seg,
short  c0,
short  c1
 

void do_render_object int  objnum  ) 
 

void draw_3d_reticle fix  eye_offset  ) 
 

void draw_outline int  nverts,
g3s_point **  pointlist
 

void draw_window_box int  color,
short  left,
short  top,
short  right,
short  bot
 

int find_joining_side_norms vms_vector norm0_0,
vms_vector norm0_1,
vms_vector norm1_0,
vms_vector norm1_1,
vms_vector **  pnt0,
vms_vector **  pnt1,
segment seg,
int  s0,
int  s1
 

int find_seg_side segment seg,
short *  verts,
int  notside
 

void flash_frame  ) 
 

void free_reticle_canvas  ) 
 

int matt_find_connect_side int  seg0,
int  seg1
 

void outline_seg_side segment seg,
int  _side,
int  edge,
int  vert
 

void project_list int  nv,
short *  pointnumlist
 

void render_face int  segnum,
int  sidenum,
int  nv,
short *  vp,
int  tmap1,
int  tmap2,
uvl uvlp,
vms_vector norm
 

void render_frame fix  eye_offset  ) 
 

void render_mine int  start_seg_num,
fix  eye_offset
 

void render_segment int  segnum  ) 
 

void render_side segment segp,
int  sidenum
 

void render_start_frame void   ) 
 

g3s_codes rotate_list int  nv,
short *  pointnumlist
 

void show_reticle int  force_big  ) 
 

int sort_func sort_item a,
sort_item b
 

int sort_seg_children segment seg,
int  n_children,
short *  child_list
 

int toggle_outline_mode void   ) 
 

int toggle_show_only_curside void   ) 
 


Variable Documentation

int behind_check = 1
 

int check_window_check = 0
 

int Clear_window = 2
 

int Clear_window_color = -1
 

int Detriangulation_on = 1
 

int draw_boxes = 0
 

int draw_edges = 0
 

int Edge_to_sides[8][8][2]
 

Initial value:

 {
        { {-1,-1}, {2,5}, {-1,-1}, {1,5}, {1,2}, {-1,-1}, {-1,-1}, {-1,-1} },
        { {2,5}, {-1,-1}, {3,5}, {-1,-1}, {-1,-1}, {2,3}, {-1,-1}, {-1,-1} },
        { {-1,-1}, {3,5}, {-1,-1}, {0,5}, {-1,-1}, {-1,-1}, {0,3}, {-1,-1} },
        { {1,5}, {-1,-1}, {0,5}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {0,1} },
        { {1,2}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {2,4}, {-1,-1}, {1,4} },
        { {-1,-1}, {2,3}, {-1,-1}, {-1,-1}, {2,4}, {-1,-1}, {3,4}, {-1,-1} },
        { {-1,-1}, {-1,-1}, {0,3}, {-1,-1}, {-1,-1}, {3,4}, {-1,-1}, {0,4} },
        { {-1,-1}, {-1,-1}, {-1,-1}, {0,1}, {1,4}, {-1,-1}, {0,4}, {-1,-1} },
}

fix Face_reflectivity = (F1_0/2)
 

int first_terminal_seg
 

fix flash_rate = FLASH_CYCLE_RATE
 

fix flash_scale
 

int lcnt_save
 

int migrate_objects = 1
 

fix Min_n0_n1_dot = (F1_0*15/16)
 

int N_render_segs
 

int n_sort_items
 

int new_seg_sorting = 1
 

int no_migrate_segs = 1
 

int Num_tmaps_drawn
 

ubyte object_rendered[MAX_OBJECTS]
 

int Outline_mode = 0
 

vms_angvec Player_head_angles
 

int pre_draw_segs = 0
 

ubyte processed[MAX_RENDER_SEGS]
 

int Rear_view = 0
 

int Render_depth = DEFAULT_RENDER_DEPTH
 

short Render_list[MAX_RENDER_SEGS]
 

short render_obj_list[MAX_RENDER_SEGS+N_EXTRA_OBJ_LISTS][OBJS_PER_SEG]
 

short render_pos[MAX_SEGMENTS]
 

window render_windows[MAX_RENDER_SEGS]
 

fix Render_zoom = 0x9000
 

grs_canvas* reticle_canvas = NULL
 

int RL_framecount = -1
 

short Rotated_last[MAX_VERTICES]
 

int scnt_save
 

short Seg_depth[MAX_RENDER_SEGS]
 

int Show_only_curside = 0
 

sort_item sort_list[SORT_LIST_SIZE]
 

int ssc_swaps = 0
 

int ssc_total = 0
 

int Total_pixels
 

fix Tulate_min_dot = (F1_0/4)
 

int Two_sides_to_edge[6][6][2]
 

Initial value:

 {
        { {-1,-1}, {3,7}, {-1,-1}, {2,6}, {6,7}, {2,3} },
        { {3,7}, {-1,-1}, {0,4}, {-1,-1}, {4,7}, {0,3} },
        { {-1,-1}, {0,4}, {-1,-1}, {1,5}, {4,5}, {0,1} },
        { {2,6}, {-1,-1}, {1,5}, {-1,-1}, {5,6}, {1,2} },
        { {6,7}, {4,7}, {4,5}, {5,6}, {-1,-1}, {-1,-1} },
        { {2,3}, {0,3}, {0,1}, {1,2}, {-1,-1}, {-1,-1} }
}

int Use_player_head_angles = 0
 

object* Viewer = NULL
 

vms_vector Viewer_eye
 

char visited[MAX_SEGMENTS]
 

char visited2[MAX_SEGMENTS]
 

int window_check = 1
 

int Window_clip_bot
 

int Window_clip_left
 

int Window_clip_right
 

int Window_clip_top
 


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