From aa532cfa281b2cb2f180c629940c7ab93bf41221 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Mon, 23 Nov 2009 10:17:32 +0000
Subject: [PATCH]     doc

git-svn-id: http://svn.net-core.org/repos/t-engine4@18 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engine/Map.lua   | 42 ++++++++++++++++++++++++++++++++++++++++++
 game/engine/Tiles.lua |  2 ++
 game/engine/class.lua |  8 ++++----
 game/engine/utils.lua |  2 ++
 4 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/game/engine/Map.lua b/game/engine/Map.lua
index f1256e1f78..676d570c68 100644
--- a/game/engine/Map.lua
+++ b/game/engine/Map.lua
@@ -4,20 +4,33 @@ local Tiles = require "engine.Tiles"
 
 module(..., package.seeall, class.make)
 
+--- The place of a terrain entity in a map grid
 TERRAIN = 1
+--- The place of an actor entity in a map grid
 ACTOR = 100
+--- The place of an object entity in a map grid
 OBJECT = 1000
 
+--- The order of display for grid seen
 displayOrder = { ACTOR, OBJECT, TERRAIN }
+--- The order of display for grids remembered
 rememberDisplayOrder = { TERRAIN }
 
+--- Sets the viewport size
 -- Static
+-- @param w width
+-- @param h height
+-- @param tile_w width of a single tile
+-- @param tile_h height of a single tile
 function _M:setViewPort(w, h, tile_w, tile_h)
 	self.viewport = {width=w, height=h}
 	self.tiles = Tiles.new(tile_w, tile_h)
 	self.tile_w, self.tile_h = tile_w, tile_h
 end
 
+--- Creates a map
+-- @param w width (in grids)
+-- @param h height (in grids)
 function _M:init(w, h)
 	self.w, self.h = w, h
 	self.map = {}
@@ -26,6 +39,7 @@ function _M:init(w, h)
 	self.remembers = {}
 	for i = 0, w * h - 1 do self.map[i] = {} end
 	getmetatable(self).__call = _M.call
+	getmetatable(self).__gc = _M.close
 	local mapbool = function(t, x, y, v)
 		if x < 0 or y < 0 or x >= self.w or y >= self.h then return end
 		if v ~= nil then
@@ -43,6 +57,12 @@ function _M:init(w, h)
 	self.changed = true
 end
 
+--- Sets/gets a value from the map
+-- It is defined as the function metamethod, so one can simply do: mymap(x, y, Map.TERRAIN)
+-- @param x position
+-- @param y position
+-- @param pos what kind of entity to set(Map.TERRAIN, Map.OBJECT, Map.ACTOR)
+-- @param entity the entity to set, if null it will return the current one
 function _M:call(x, y, pos, entity)
 	if entity then
 		self.map[x + y * self.w][pos] = entity
@@ -58,6 +78,10 @@ function _M:call(x, y, pos, entity)
 	end
 end
 
+--- Removes an entity
+-- @param x position
+-- @param y position
+-- @param pos what kind of entity to set(Map.TERRAIN, Map.OBJECT, Map.ACTOR)
 function _M:remove(x, y, pos)
 	if self.map[x + y * self.w] then
 		self.map[x + y * self.w][pos] = nil
@@ -65,6 +89,8 @@ function _M:remove(x, y, pos)
 	end
 end
 
+--- Displays the map on a surface
+-- @return a surface containing the drawn map
 function _M:display()
 	-- If nothing changed, return the same surface as before
 	if not self.changed then return self.surface end
@@ -120,20 +146,28 @@ function _M:display()
 	return self.surface
 end
 
+--- Closes all stuff used by the map
+-- No need to call it manually usualy
 function _M:close()
 	self.tiles:close()
 	self.fovLite:close()
 	self.fovLite = nil
 	self.fov:close()
 	self.fov = nil
+	return true
 end
 
+
+--- Sets checks if a grid lets sigth pass through
+-- Used by FOV code
 function _M:opaque(x, y)
 	if x < 0 or x >= self.w or y < 0 or y >= self.h then return false end
 	local e = self(x, y, TERRAIN)
 	if e and e:check("block_sight") then return true end
 end
 
+--- Sets a grid as seen and remembered
+-- Used by FOV code
 function _M:apply(x, y)
 	if x < 0 or x >= self.w or y < 0 or y >= self.h then return end
 	if self.lites[x + y * self.w] then
@@ -142,6 +176,8 @@ function _M:apply(x, y)
 	end
 end
 
+--- Sets a grid as seen, lited and remembered
+-- Used by FOV code
 function _M:applyLite(x, y)
 	if x < 0 or x >= self.w or y < 0 or y >= self.h then return end
 	self.lites[x + y * self.w] = true
@@ -149,6 +185,10 @@ function _M:applyLite(x, y)
 	self.remembers[x + y * self.w] = true
 end
 
+--- Check all entities of the grid for a property
+-- @param x position
+-- @param y position
+-- @param what property to check
 function _M:checkAllEntities(x, y, what, ...)
 	if x < 0 or x >= self.w or y < 0 or y >= self.h then return end
 	if self.map[x + y * self.w] then
@@ -159,12 +199,14 @@ function _M:checkAllEntities(x, y, what, ...)
 	end
 end
 
+--- Lite all grids
 function _M:liteAll(x, y, w, h)
 	for i = x, x + w - 1 do for j = y, y + h - 1 do
 		self.lites(i, j, true)
 	end end
 end
 
+--- Remember all grids
 function _M:rememberAll(x, y, w, h)
 	for i = x, x + w - 1 do for j = y, y + h - 1 do
 		self.remembers(i, j, true)
diff --git a/game/engine/Tiles.lua b/game/engine/Tiles.lua
index f2fcebaee6..e0365a7d19 100644
--- a/game/engine/Tiles.lua
+++ b/game/engine/Tiles.lua
@@ -1,5 +1,7 @@
 require "engine.class"
 
+--- Handles tiles
+-- Used by engine.Map to reduce processing needed. Module authors wont use it directly mostly.
 module(..., package.seeall, class.make)
 
 prefix = "/data/gfx/"
diff --git a/game/engine/class.lua b/game/engine/class.lua
index 3f6da8f5ae..b3d25cedcb 100644
--- a/game/engine/class.lua
+++ b/game/engine/class.lua
@@ -68,11 +68,11 @@ function _M:clone(t)
 	return n
 end
 
------------------------------------------------------------------------
------------------------------------------------------------------------
+-- ---------------------------------------------------------------------
+-- ---------------------------------------------------------------------
 -- LOAD & SAVE
------------------------------------------------------------------------
------------------------------------------------------------------------
+-- ---------------------------------------------------------------------
+-- ---------------------------------------------------------------------
 local function basicSerialize(o)
 	if type(o) == "number" or type(o) == "boolean" then
 		return tostring(o)
diff --git a/game/engine/utils.lua b/game/engine/utils.lua
index cfb0ae8258..2d13bab9e3 100644
--- a/game/engine/utils.lua
+++ b/game/engine/utils.lua
@@ -94,6 +94,7 @@ function string.parseHex(str)
 	return res
 end
 
+do
 local tmps = core.display.newSurface(1, 1)
 getmetatable(tmps).__index.drawColorString = function(s, font, str, x, y, r, g, b)
 	local list = str:split("#%x%x%x%x%x%x#", true)
@@ -108,3 +109,4 @@ getmetatable(tmps).__index.drawColorString = function(s, font, str, x, y, r, g,
 		end
 	end
 end
+end
-- 
GitLab