summaryrefslogtreecommitdiff
path: root/src/Renderer.h
blob: a756f13f42f5afbdf86d59975f23e2ea21d1d3c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#ifndef RENDERER_H
#define RENDERER_H

#include "Config.h"
#include "simulation/Simulation.h"
#include "Graphics.h"

class Simulation;

class Graphics;

struct gcache_item
{
	int isready;
	int pixel_mode;
	int cola, colr, colg, colb;
	int firea, firer, fireg, fireb;
};
typedef struct gcache_item gcache_item;

class Renderer
{
public:
	//TODO: Vectors!
	unsigned int *render_modes;
	unsigned int render_mode;
	unsigned int colour_mode;
	unsigned int *display_modes;
	unsigned int display_mode;
	//
	unsigned char fire_r[YRES/CELL][XRES/CELL];
	unsigned char fire_g[YRES/CELL][XRES/CELL];
	unsigned char fire_b[YRES/CELL][XRES/CELL];
	unsigned int fire_alpha[CELL*3][CELL*3];
	char * flm_data;
	char * plasma_data;
	int emp_decor;
	//
	int decorations_enable;
	Simulation * sim;
	Graphics * g;
	gcache_item *graphicscache;
	//
	void draw_walls();
	void render_signs();
	void render_gravlensing();
	void render_fire();
	void prepare_alpha(int size, float intensity);
	void render_parts();
	void draw_grav_zones();
	void draw_air();
	void draw_grav();
	void draw_other();
	void init_display_modes();
	void get_sign_pos(int i, int *x0, int *y0, int *w, int *h);
	void prepare_graphicscache();
	Renderer(Graphics * g, Simulation * sim);
};

#endif