Skip to content
Snippets Groups Projects
Commit f019fb6b authored by dg's avatar dg
Browse files

gates of morning

git-svn-id: http://svn.net-core.org/repos/t-engine4@622 51575b47-30f0-44d4-a5cc-537603b46e54
parent 82d55fcc
No related branches found
No related tags found
No related merge requests found
......@@ -72,6 +72,12 @@ function _M:init(t, no_default)
self.color_bb = self.color.bb
self.color = nil
end
if self.tint then
self.tint_r = self.tint.r / 255
self.tint_g = self.tint.g / 255
self.tint_b = self.tint.b / 255
self.tint = nil
end
if not no_default then
self.image = self.image or nil
......@@ -82,6 +88,9 @@ function _M:init(t, no_default)
self.color_br = self.color_br or -1
self.color_bg = self.color_bg or -1
self.color_bb = self.color_bb or -1
self.tint_r = self.tint_r or 1
self.tint_g = self.tint_g or 1
self.tint_b = self.tint_b or 1
end
if self.unique and type(self.unique) ~= "string" then self.unique = self.name end
......
......@@ -295,6 +295,10 @@ function _M:updateMap(x, y)
local o = self(x, y, OBJECT)
local a = self(x, y, ACTOR)
local t = self(x, y, TRAP)
local g_r, g_g, g_b
local o_r, o_g, o_b
local a_r, a_g, a_b
local t_r, t_g, t_b
-- Update minimap if any
local mm = MM_FLOOR
......@@ -302,11 +306,13 @@ function _M:updateMap(x, y)
if g then
mm = mm + (g:check("block_move") and MM_BLOCK or 0)
mm = mm + (g:check("change_level") and MM_LEVEL_CHANGE or 0)
g_r, g_g, g_b = g.tint_r, g.tint_g, g.tint_b
g = self.tiles:get(g.display, g.color_r, g.color_g, g.color_b, g.color_br, g.color_bg, g.color_bb, g.image)
end
if t then
-- Handles invisibility and telepathy and other such things
if not self.actor_player or t:knownBy(self.actor_player) then
t_r, t_g, t_b = t.tint_r, t.tint_g, t.tint_b
t = self.tiles:get(t.display, t.color_r, t.color_g, t.color_b, t.color_br, t.color_bg, t.color_bb, t.image)
mm = mm + MM_TRAP
else
......@@ -314,6 +320,7 @@ function _M:updateMap(x, y)
end
end
if o then
o_r, o_g, o_b = o.tint_r, o.tint_g, o.tint_b
o = self.tiles:get(o.display, o.color_r, o.color_g, o.color_b, o.color_br, o.color_bg, o.color_bb, o.image)
mm = mm + MM_OBJECT
end
......@@ -322,6 +329,7 @@ function _M:updateMap(x, y)
if not self.actor_player or self.actor_player:canSee(a) then
local r = self.actor_player:reactionToward(a)
mm = mm + (r > 0 and MM_FRIEND or (r == 0 and MM_NEUTRAL or MM_HOSTILE))
a_r, a_g, a_b = a.tint_r, a.tint_g, a.tint_b
a = self.tiles:get(a.display, a.color_r, a.color_g, a.color_b, a.color_br, a.color_bg, a.color_bb, a.image)
else
a = nil
......@@ -329,7 +337,13 @@ function _M:updateMap(x, y)
end
-- Cache the textures in the C map object
self._map:setGrid(x, y, g, t, o, a, mm)
self._map:setGrid(x, y,
g, g_r, g_g, g_b,
t, t_r, t_g, t_b,
o, o_r, o_g, o_b,
a, a_r, a_g, a_b,
mm
)
-- Update FOV caches
if self:checkAllEntities(x, y, "block_sight", self.actor_player) then self._fovcache.block_sight:set(x, y, true)
......
......@@ -150,6 +150,7 @@ function _M:playerFOV()
if not game.zone.wilderness then self:computeFOV(self.esp.range or 10, "block_esp", function(x, y) game.level.map:applyESP(x, y) end, true, true) end
-- Compute both the normal and the lite FOV, using cache
if game.zone.wilderness_see_radius then
self:computeFOV(self.sight or 20, "block_sight", function(x, y, dx, dy, sqdist) game.level.map:apply(x, y) end, true, false, true)
self:computeFOV(game.zone.wilderness_see_radius, "block_sight", function(x, y, dx, dy, sqdist) game.level.map:applyLite(x, y) end, true, true, true)
else
self:computeFOV(self.sight or 20, "block_sight", function(x, y, dx, dy, sqdist) game.level.map:apply(x, y) end, true, false, true)
......
game/modules/tome/data/gfx/terrain/gate-morning.png

1.36 KiB

......@@ -19,19 +19,19 @@
-- The far east on Arda
quickEntity('w', {show_tooltip=true, name='Sun Wall', display='^', color=colors.GOLD, image="terrain/mountain.png", block_move=true})
quickEntity('=', {show_tooltip=true, name='the great sea', display='~', color=colors.BLUE, image="terrain/river.png", block_move=true})
quickEntity(' ', {show_tooltip=true, name='plains', display='.', color=colors.LIGHT_GREEN, image="terrain/grass.png", can_encounter=true, equilibrium_level=-10})
quickEntity('~', {show_tooltip=true, name='river', display='~', color={r=0, g=80, b=255}, image="terrain/river.png", can_encounter=true, equilibrium_level=-10})
quickEntity('s', {show_tooltip=true, name='desert', display='.', color={r=203,g=189,b=72}, image="terrain/sand.png", can_encounter=true, equilibrium_level=-10})
quickEntity('t', {show_tooltip=true, name='forest', display='#', color=colors.LIGHT_GREEN, image="terrain/tree.png", block_move=true})
quickEntity('m', {show_tooltip=true, name='mountains', display='^', color=colors.UMBER, image="terrain/mountain.png", block_move=true})
quickEntity('h', {show_tooltip=true, name='low hills', display='^', color=colors.GREEN, image="terrain/hills.png", can_encounter=true, equilibrium_level=-10})
quickEntity('w', {always_remember = true, show_tooltip=true, name='Sun Wall', display='^', color=colors.GOLD, image="terrain/mountain.png", tint=colors.GOLD, block_move=true})
quickEntity('=', {always_remember = true, show_tooltip=true, name='the great sea', display='~', color=colors.BLUE, image="terrain/river.png", block_move=true})
quickEntity(' ', {always_remember = true, show_tooltip=true, name='plains', display='.', color=colors.LIGHT_GREEN, image="terrain/grass.png", can_encounter=true, equilibrium_level=-10})
quickEntity('~', {always_remember = true, show_tooltip=true, name='river', display='~', color={r=0, g=80, b=255}, image="terrain/river.png", can_encounter=true, equilibrium_level=-10})
quickEntity('s', {always_remember = true, show_tooltip=true, name='desert', display='.', color={r=203,g=189,b=72}, image="terrain/sand.png", can_encounter=true, equilibrium_level=-10})
quickEntity('t', {always_remember = true, show_tooltip=true, name='forest', display='#', color=colors.LIGHT_GREEN, image="terrain/tree.png", block_move=true})
quickEntity('m', {always_remember = true, show_tooltip=true, name='mountains', display='^', color=colors.UMBER, image="terrain/mountain.png", block_move=true})
quickEntity('h', {always_remember = true, show_tooltip=true, name='low hills', display='^', color=colors.GREEN, image="terrain/hills.png", can_encounter=true, equilibrium_level=-10})
--quickEntity('A', {show_tooltip=true, name="Caves below the tower of Amon Sûl", display='>', color={r=0, g=255, b=255}, notice = true, change_level=1, change_zone="tower-amon-sul"})
--quickEntity('A', {always_remember = true, show_tooltip=true, name="Caves below the tower of Amon Sûl", display='>', color={r=0, g=255, b=255}, notice = true, change_level=1, change_zone="tower-amon-sul"})
--quickEntity('1', {show_tooltip=true, name="Bree (Town)", desc="A quiet town at the crossroads of the north", display='*', color={r=255, g=255, b=255}, image="terrain/town1.png", notice = true, change_level=1, change_zone="town-bree"})
--quickEntity('2', {show_tooltip=true, name="Minas Tirith (Town)", desc="Captical city of the Reunited-Kingdom and Gondor ruled by High King Eldarion", display='*', color={r=255, g=255, b=255}, image="terrain/town1.png", notice = true, change_level=1, change_zone="town-minas-tirith"})
quickEntity('1', {always_remember = true, show_tooltip=true, name="Gates of Morning", desc="A massive hole in the Sun Wall", display='*', color=colors.GOLD, image="terrain/gate-morning.png", tint=colors.GOLD, notice = true, change_level=1, change_zone="town-gates-of-morning"})
--quickEntity('2', {always_remember = true, show_tooltip=true, name="Minas Tirith (Town)", desc="Captical city of the Reunited-Kingdom and Gondor ruled by High King Eldarion", display='*', color={r=255, g=255, b=255}, image="terrain/town1.png", notice = true, change_level=1, change_zone="town-minas-tirith"})
-- Load encounters for this map
--[[
......@@ -84,7 +84,7 @@ return [[
===== www============
===== www============
====== www============
======== ======= hhhhhh Mww============
======== ======= hhhhhh 1ww============
============================== hhhhhhh www============
================================ h www============
================================= hh www============
......
......@@ -22,9 +22,9 @@ return {
level_range = {1, 1},
max_level = 1,
width = 100, height = 100,
all_remembered = true,
all_lited = true,
persistant = "memory",
-- all_remembered = true,
-- all_lited = true,
-- persistant = "memory",
wilderness = true,
wilderness_see_radius = 3,
ambiant_music = "last",
......
......@@ -18,6 +18,7 @@
Nicolas Casalini "DarkGod"
darkgod@te4.org
*/
#include <math.h>
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
......@@ -69,10 +70,10 @@ static int map_new(lua_State *L)
map->my = my;
map->mwidth = mwidth;
map->mheight = mheight;
map->grids_terrain = calloc(w, sizeof(GLuint*));
map->grids_actor = calloc(w, sizeof(GLuint*));
map->grids_trap = calloc(w, sizeof(GLuint*));
map->grids_object = calloc(w, sizeof(GLuint*));
map->grids_terrain = calloc(w, sizeof(map_texture*));
map->grids_actor = calloc(w, sizeof(map_texture*));
map->grids_trap = calloc(w, sizeof(map_texture*));
map->grids_object = calloc(w, sizeof(map_texture*));
map->grids_seens = calloc(w, sizeof(bool*));
map->grids_remembers = calloc(w, sizeof(bool*));
map->grids_lites = calloc(w, sizeof(bool*));
......@@ -82,10 +83,10 @@ static int map_new(lua_State *L)
int i;
for (i = 0; i < w; i++)
{
map->grids_terrain[i] = calloc(h, sizeof(GLuint));
map->grids_actor[i] = calloc(h, sizeof(GLuint));
map->grids_object[i] = calloc(h, sizeof(GLuint));
map->grids_trap[i] = calloc(h, sizeof(GLuint));
map->grids_terrain[i] = calloc(h, sizeof(map_texture));
map->grids_actor[i] = calloc(h, sizeof(map_texture));
map->grids_object[i] = calloc(h, sizeof(map_texture));
map->grids_trap[i] = calloc(h, sizeof(map_texture));
map->grids_seens[i] = calloc(h, sizeof(bool));
map->grids_remembers[i] = calloc(h, sizeof(bool));
map->grids_lites[i] = calloc(h, sizeof(bool));
......@@ -202,17 +203,51 @@ static int map_set_grid(lua_State *L)
map_type *map = (map_type*)auxiliar_checkclass(L, "core{map}", 1);
int x = luaL_checknumber(L, 2);
int y = luaL_checknumber(L, 3);
GLuint *g = lua_isnil(L, 4) ? NULL : (GLuint*)auxiliar_checkclass(L, "gl{texture}", 4);
GLuint *t = lua_isnil(L, 5) ? NULL : (GLuint*)auxiliar_checkclass(L, "gl{texture}", 5);
GLuint *o = lua_isnil(L, 6) ? NULL : (GLuint*)auxiliar_checkclass(L, "gl{texture}", 6);
GLuint *a = lua_isnil(L, 7) ? NULL : (GLuint*)auxiliar_checkclass(L, "gl{texture}", 7);
unsigned char mm = luaL_checknumber(L, 8);
float g_r = lua_tonumber(L, 5);
float g_g = lua_tonumber(L, 6);
float g_b = lua_tonumber(L, 7);
GLuint *t = lua_isnil(L, 8) ? NULL : (GLuint*)auxiliar_checkclass(L, "gl{texture}", 8);
float t_r = lua_tonumber(L, 9);
float t_g = lua_tonumber(L, 10);
float t_b = lua_tonumber(L, 11);
GLuint *o = lua_isnil(L, 12) ? NULL : (GLuint*)auxiliar_checkclass(L, "gl{texture}", 12);
float o_r = lua_tonumber(L, 13);
float o_g = lua_tonumber(L, 14);
float o_b = lua_tonumber(L, 15);
GLuint *a = lua_isnil(L, 16) ? NULL : (GLuint*)auxiliar_checkclass(L, "gl{texture}", 16);
float a_r = lua_tonumber(L, 17);
float a_g = lua_tonumber(L, 18);
float a_b = lua_tonumber(L, 19);
unsigned char mm = lua_tonumber(L, 8);
if (x < 0 || y < 0 || x >= map->w || y >= map->h) return 0;
map->grids_terrain[x][y] = g ? *g : 0;
map->grids_trap[x][y] = t ? *t : 0;
map->grids_actor[x][y] = a ? *a : 0;
map->grids_object[x][y] = o ? *o : 0;
map->grids_terrain[x][y].texture = g ? *g : 0;
map->grids_terrain[x][y].tint_r = g_r;
map->grids_terrain[x][y].tint_g = g_g;
map->grids_terrain[x][y].tint_b = g_b;
map->grids_trap[x][y].texture = t ? *t : 0;
map->grids_trap[x][y].tint_r = t_r;
map->grids_trap[x][y].tint_g = t_g;
map->grids_trap[x][y].tint_b = t_b;
map->grids_actor[x][y].texture = a ? *a : 0;
map->grids_actor[x][y].tint_r = a_r;
map->grids_actor[x][y].tint_g = a_g;
map->grids_actor[x][y].tint_b = a_b;
map->grids_object[x][y].texture = o ? *o : 0;
map->grids_object[x][y].tint_r = o_r;
map->grids_object[x][y].tint_g = o_g;
map->grids_object[x][y].tint_b = o_b;
map->minimap[x][y] = mm;
return 0;
}
......@@ -303,6 +338,7 @@ static int map_to_screen(lua_State *L)
int x = luaL_checknumber(L, 2);
int y = luaL_checknumber(L, 3);
int i = 0, j = 0;
float r, g, b, a, n;
for (i = map->mx; i < map->mx + map->mwidth; i++)
{
......@@ -317,13 +353,16 @@ static int map_to_screen(lua_State *L)
{
if (map->grids_seens[i][j])
{
glColor4f(map->shown_r, map->shown_g, map->shown_b, map->shown_a);
if (map->multidisplay)
{
if (map->grids_terrain[i][j])
if (map->grids_terrain[i][j].texture)
{
glBindTexture(GL_TEXTURE_2D, map->grids_terrain[i][j]);
map_texture *m = &(map->grids_terrain[i][j]);
if (m->tint_r < 1 || m->tint_g < 1 || m->tint_b < 1)
glColor4f((map->shown_r + m->tint_r)/2, (map->shown_g + m->tint_g)/2, (map->shown_b + m->tint_b)/2, map->shown_a);
else
glColor4f(map->shown_r, map->shown_g, map->shown_b, map->shown_a);
glBindTexture(GL_TEXTURE_2D, map->grids_terrain[i][j].texture);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0 +dx, 0 +dy,-99);
glTexCoord2f(1,0); glVertex3f(map->tile_w +dx, 0 +dy,-99);
......@@ -331,9 +370,14 @@ static int map_to_screen(lua_State *L)
glTexCoord2f(0,1); glVertex3f(0 +dx, map->tile_h +dy,-99);
glEnd();
}
if (map->grids_trap[i][j])
if (map->grids_trap[i][j].texture)
{
glBindTexture(GL_TEXTURE_2D, map->grids_trap[i][j]);
map_texture *m = &(map->grids_trap[i][j]);
if (m->tint_r < 1 || m->tint_g < 1 || m->tint_b < 1)
glColor4f((map->shown_r + m->tint_r)/2, (map->shown_g + m->tint_g)/2, (map->shown_b + m->tint_b)/2, map->shown_a);
else
glColor4f(map->shown_r, map->shown_g, map->shown_b, map->shown_a);
glBindTexture(GL_TEXTURE_2D, map->grids_trap[i][j].texture);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0 +dx, 0 +dy,-99);
glTexCoord2f(1,0); glVertex3f(map->tile_w +dx, 0 +dy,-99);
......@@ -341,9 +385,14 @@ static int map_to_screen(lua_State *L)
glTexCoord2f(0,1); glVertex3f(0 +dx, map->tile_h +dy,-99);
glEnd();
}
if (map->grids_object[i][j])
if (map->grids_object[i][j].texture)
{
glBindTexture(GL_TEXTURE_2D, map->grids_object[i][j]);
map_texture *m = &(map->grids_object[i][j]);
if (m->tint_r < 1 || m->tint_g < 1 || m->tint_b < 1)
glColor4f((map->shown_r + m->tint_r)/2, (map->shown_g + m->tint_g)/2, (map->shown_b + m->tint_b)/2, map->shown_a);
else
glColor4f(map->shown_r, map->shown_g, map->shown_b, map->shown_a);
glBindTexture(GL_TEXTURE_2D, map->grids_object[i][j].texture);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0 +dx, 0 +dy,-99);
glTexCoord2f(1,0); glVertex3f(map->tile_w +dx, 0 +dy,-99);
......@@ -351,9 +400,14 @@ static int map_to_screen(lua_State *L)
glTexCoord2f(0,1); glVertex3f(0 +dx, map->tile_h +dy,-99);
glEnd();
}
if (map->grids_actor[i][j])
if (map->grids_actor[i][j].texture)
{
glBindTexture(GL_TEXTURE_2D, map->grids_actor[i][j]);
map_texture *m = &(map->grids_actor[i][j]);
if (m->tint_r < 1 || m->tint_g < 1 || m->tint_b < 1)
glColor4f((map->shown_r + m->tint_r)/2, (map->shown_g + m->tint_g)/2, (map->shown_b + m->tint_b)/2, map->shown_a);
else
glColor4f(map->shown_r, map->shown_g, map->shown_b, map->shown_a);
glBindTexture(GL_TEXTURE_2D, map->grids_actor[i][j].texture);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0 +dx, 0 +dy,-99);
glTexCoord2f(1,0); glVertex3f(map->tile_w +dx, 0 +dy,-99);
......@@ -364,9 +418,14 @@ static int map_to_screen(lua_State *L)
}
else
{
if (map->grids_actor[i][j])
if (map->grids_actor[i][j].texture)
{
glBindTexture(GL_TEXTURE_2D, map->grids_actor[i][j]);
map_texture *m = &(map->grids_actor[i][j]);
if (m->tint_r < 1 || m->tint_g < 1 || m->tint_b < 1)
glColor4f((map->shown_r + m->tint_r)/2, (map->shown_g + m->tint_g)/2, (map->shown_b + m->tint_b)/2, map->shown_a);
else
glColor4f(map->shown_r, map->shown_g, map->shown_b, map->shown_a);
glBindTexture(GL_TEXTURE_2D, map->grids_actor[i][j].texture);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0 +dx, 0 +dy,-99);
glTexCoord2f(1,0); glVertex3f(map->tile_w +dx, 0 +dy,-99);
......@@ -374,9 +433,14 @@ static int map_to_screen(lua_State *L)
glTexCoord2f(0,1); glVertex3f(0 +dx, map->tile_h +dy,-99);
glEnd();
}
else if (map->grids_object[i][j])
else if (map->grids_object[i][j].texture)
{
glBindTexture(GL_TEXTURE_2D, map->grids_object[i][j]);
map_texture *m = &(map->grids_object[i][j]);
if (m->tint_r < 1 || m->tint_g < 1 || m->tint_b < 1)
glColor4f((map->shown_r + m->tint_r)/2, (map->shown_g + m->tint_g)/2, (map->shown_b + m->tint_b)/2, map->shown_a);
else
glColor4f(map->shown_r, map->shown_g, map->shown_b, map->shown_a);
glBindTexture(GL_TEXTURE_2D, map->grids_object[i][j].texture);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0 +dx, 0 +dy,-99);
glTexCoord2f(1,0); glVertex3f(map->tile_w +dx, 0 +dy,-99);
......@@ -384,9 +448,14 @@ static int map_to_screen(lua_State *L)
glTexCoord2f(0,1); glVertex3f(0 +dx, map->tile_h +dy,-99);
glEnd();
}
else if (map->grids_trap[i][j])
else if (map->grids_trap[i][j].texture)
{
glBindTexture(GL_TEXTURE_2D, map->grids_trap[i][j]);
map_texture *m = &(map->grids_trap[i][j]);
if (m->tint_r < 1 || m->tint_g < 1 || m->tint_b < 1)
glColor4f((map->shown_r + m->tint_r)/2, (map->shown_g + m->tint_g)/2, (map->shown_b + m->tint_b)/2, map->shown_a);
else
glColor4f(map->shown_r, map->shown_g, map->shown_b, map->shown_a);
glBindTexture(GL_TEXTURE_2D, map->grids_trap[i][j].texture);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0 +dx, 0 +dy,-99);
glTexCoord2f(1,0); glVertex3f(map->tile_w +dx, 0 +dy,-99);
......@@ -394,9 +463,14 @@ static int map_to_screen(lua_State *L)
glTexCoord2f(0,1); glVertex3f(0 +dx, map->tile_h +dy,-99);
glEnd();
}
else if (map->grids_terrain[i][j])
else if (map->grids_terrain[i][j].texture)
{
glBindTexture(GL_TEXTURE_2D, map->grids_terrain[i][j]);
map_texture *m = &(map->grids_terrain[i][j]);
if (m->tint_r < 1 || m->tint_g < 1 || m->tint_b < 1)
glColor4f((map->shown_r + m->tint_r)/2, (map->shown_g + m->tint_g)/2, (map->shown_b + m->tint_b)/2, map->shown_a);
else
glColor4f(map->shown_r, map->shown_g, map->shown_b, map->shown_a);
glBindTexture(GL_TEXTURE_2D, map->grids_terrain[i][j].texture);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0 +dx, 0 +dy,-99);
glTexCoord2f(1,0); glVertex3f(map->tile_w +dx, 0 +dy,-99);
......@@ -408,10 +482,14 @@ static int map_to_screen(lua_State *L)
}
else
{
glColor4f(map->obscure_r, map->obscure_g, map->obscure_b, map->obscure_a);
if (map->grids_terrain[i][j])
if (map->grids_terrain[i][j].texture)
{
glBindTexture(GL_TEXTURE_2D, map->grids_terrain[i][j]);
map_texture *m = &(map->grids_terrain[i][j]);
if (m->tint_r < 1 || m->tint_g < 1 || m->tint_b < 1)
glColor4f((map->obscure_r + m->tint_r)/2, (map->obscure_g + m->tint_g)/2, (map->obscure_b + m->tint_b)/2, map->obscure_a);
else
glColor4f(map->obscure_r, map->obscure_g, map->obscure_b, map->obscure_a);
glBindTexture(GL_TEXTURE_2D, map->grids_terrain[i][j].texture);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0 +dx, 0 +dy,-99);
glTexCoord2f(1,0); glVertex3f(map->tile_w +dx, 0 +dy,-99);
......
......@@ -24,10 +24,17 @@
#include "tgl.h"
typedef struct {
GLuint **grids_terrain;
GLuint **grids_actor;
GLuint **grids_object;
GLuint **grids_trap;
GLuint texture;
float tint_r;
float tint_g;
float tint_b;
} map_texture;
typedef struct {
map_texture **grids_terrain;
map_texture **grids_actor;
map_texture **grids_object;
map_texture **grids_trap;
bool **grids_seens;
bool **grids_remembers;
bool **grids_lites;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment