From 9c7b5fd510c2ab0b1063d4aa147b89097b564d44 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sat, 26 Feb 2011 16:24:11 +0000
Subject: [PATCH] option for daynight cycle fix lightning overload

git-svn-id: http://svn.net-core.org/repos/t-engine4@2851 51575b47-30f0-44d4-a5cc-537603b46e54
---
 .../default/data/gfx/ui/button-left-sel.png       | Bin 467 -> 0 bytes
 game/engines/default/data/gfx/ui/button-left.png  | Bin 396 -> 0 bytes
 .../default/data/gfx/ui/button-middle-sel.png     | Bin 244 -> 0 bytes
 .../engines/default/data/gfx/ui/button-middle.png | Bin 233 -> 0 bytes
 .../default/data/gfx/ui/button-right-sel.png      | Bin 484 -> 0 bytes
 game/engines/default/data/gfx/ui/button-right.png | Bin 434 -> 0 bytes
 game/modules/tome/class/GameState.lua             |  14 +++++++++++---
 .../tome/data/quests/lightning-overload.lua       |   3 ++-
 game/modules/tome/dialogs/GameOptions.lua         |   9 +++++++++
 game/modules/tome/load.lua                        |   1 +
 10 files changed, 23 insertions(+), 4 deletions(-)
 delete mode 100644 game/engines/default/data/gfx/ui/button-left-sel.png
 delete mode 100644 game/engines/default/data/gfx/ui/button-left.png
 delete mode 100644 game/engines/default/data/gfx/ui/button-middle-sel.png
 delete mode 100644 game/engines/default/data/gfx/ui/button-middle.png
 delete mode 100644 game/engines/default/data/gfx/ui/button-right-sel.png
 delete mode 100644 game/engines/default/data/gfx/ui/button-right.png

diff --git a/game/engines/default/data/gfx/ui/button-left-sel.png b/game/engines/default/data/gfx/ui/button-left-sel.png
deleted file mode 100644
index 532f8c461f0ee3e525972c049655df5cab07ce48..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 467
zcmV;^0WAKBP)<h;3K|Lk000e1NJLTq000I6000;W1^@s6*$|AQ00001b5ch_0Itp)
z=>Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RV3IP)_3bmCPr~m)}9cffpbVF}#
zZDnqB0000007G(RVRU6=Aa`kWXdp*PO;BVmWd{HN0X#`WK~yNuWsg5k!cY{&fA{s(
z){;^{A;i&v!2}XaaB*O9)1ASAxRLNF`~>bUZYGWlgxygmHa>%!80nuBo`a=Se9KGD
z@7{CH6$;P3z3l;GU?`cOfk)tOJEXHe7pv!I9A9>kZ2b-3<fc!f-@{}ZV}PLDqIS_?
z9mY8r0tB5Fn=ocS1GiBljbgwcMX-(%#26636hRmvTNT-XO&C+qi&k0izSSlJ#_YA)
z_WxHmjUu*Q^0!rzPfIa8zgo;LTtrAezpxJ7tdv1(%R-4Ds|efHi22RY2U_E3jcr-j
zsX^N|h@k7f|Dr?&p5x$XjZz9x3U$?PKL?)2k?+$80-BWy&2ky*eKJXB^ZBWWv`Vgv
zlUXYueHxAKtEJLx700ZSgzq>;j4^e<2fT;rwEMbP3_h02>mS{oXnh07Q;z@u002ov
JPDHLkV1hffz1jc(

diff --git a/game/engines/default/data/gfx/ui/button-left.png b/game/engines/default/data/gfx/ui/button-left.png
deleted file mode 100644
index 872652d716dce2232c9fd4842ee9070eedcd0068..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 396
zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol*0U~b-^ehHajKx9jP7LeL$-D%~CV9KNFqkvE
zWw^Tc;4Vj?2xoyuWHAE+cP9ulnx8zq7AVMG;_2(kev6Bd+eCRrYP%;;NV3E=qQp5r
zH#aq}gu%HeHL)Z$MWH;iBtya7(>EZzkxv|`=((qhV~EE2(n;2S%!UGO`wM*<r)Vjh
zXr92jYKp?e!=6e~v*xt7u|2h#qa=EVVT<)QKGwL?H(N7x&OZOIc-qOZpTGS30kIn%
zQ56qFD_-gSEP3|y=%XpCW+{69<J%Coe#g#v%uW9De3lFAO;2CZma~;{#{BsLCYR19
z*w`(**uW6R#LFn`c*bD~Lo08PmPv!bnF|7wt#{@HY0Pz5vVOxEKI0>o!q!}Wwf*Hn
zr6tQHw*30F&hk^;jEg2-Gv_(pmMWDkILFw=TqbK`oYZsV#-j%De={!D{r_1QdN%Ap
lE@zC@{KoA<C+hD%XV-`bdGJw2C<o|e22WQ%mvv4FO#qlkm>d8A

diff --git a/game/engines/default/data/gfx/ui/button-middle-sel.png b/game/engines/default/data/gfx/ui/button-middle-sel.png
deleted file mode 100644
index 306f7cf1d62dd567a18886ce863286f842fe139e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 244
zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!3HF)&rH7s5-1LGcVbv~PUa<$!&%@FS<Jw|
zEeyhp4727)00r4gJbhi+Z*egS8;UKQ;`$sYB%2u$QR1ARo12<f0^~9<I2WZRmZYXA
zlxLP?D7bt22BhevvIE6qJzX3_IIgFjHsosx5OBTtI=G3mF|7PiQiOT-2BU?F^>Q;A
zrLAvImf2Nl$9mxP<~dsLS41sXEE)P{g;Ido|47rt%73IK-Ne;j8C|T{yYP6e!}&}n
h=lhG#y1g%b%Drffsf=pt%pV{Zc)I$ztaD0e0svB>O~(KL

diff --git a/game/engines/default/data/gfx/ui/button-middle.png b/game/engines/default/data/gfx/ui/button-middle.png
deleted file mode 100644
index 4bcd9226f3682b41641558cc15d5f751dc78fd3b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 233
zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!3HF)&rH7s5-1LGcVbv~PUa<$!<OXj?!sWs
z@Rs4~-h;awfg+p*9+AZi4BVX{%xHe{^je@Gdx@v7EBh@jMs8CM-9!E!Kq1Kz*N775
z{M_8syb=cIqSVBa)D(sC%#sWRcTeAd@J2pypduGf7sn8e>#;o>c^eD_j;xXHWE7BO
z-1uLq{yP_|r*rbnUdii*tP7so1ztLlmm+=h=1hg<fmzX(8l0<Mr4|O%HtR6d?`iin
VdHBLhK>%nTgQu&X%Q~loCIG16MbrQQ

diff --git a/game/engines/default/data/gfx/ui/button-right-sel.png b/game/engines/default/data/gfx/ui/button-right-sel.png
deleted file mode 100644
index 8a2d303027939a896fda6fff73b25fc339732910..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 484
zcmV<A0UQ2_P)<h;3K|Lk000e1NJLTq000I6000;W1^@s6*$|AQ00001b5ch_0Itp)
z=>Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RV3IP)_3&N5qJ^%m!9cffpbVF}#
zZDnqB0000007G(RVRU6=Aa`kWXdp*PO;BVmWd{HN0ZmCnK~yNuZIQi7#6T2A&m<Fr
zEJkHTY!y^kFomMl*82#l7Qsd=d<5S?5Nxaz>=hde?S(DGNAL&1!op-Go0)5|n_XQ!
z<#+CP=fZ?hmPweVi(#5R`^U!@2B;{@gb`=JUhn+83YHHtX4hM_=m4hxYV)-#2)y4v
z@N#um4{QalusCCBZl_GIt<+*aaHcQ3vCO2awP<T+N}&J#L^G+yoOZcEsalQD&XlM@
zEb6By42r*KXDn)L8bJHPGOWm0<3DsYSk*7c*s41Cb(JxLMDX5^1h!ZI0KO<tN+BZX
zsB$P29>L{?C=Br;=&3*hP}!0w(DY(OSydl;KAuEG@L`0Vh{>(Ri`?pkBtd}6Ir6e3
z3PU!QmM(N7juD{e93n!}Y+jx0?mp=+Yln@QM&stV(>Vev{r36Ee3D%6v|5*k?RFQ)
af&3des-EM=yOZPq0000<MNUMnLSTYK_{U!W

diff --git a/game/engines/default/data/gfx/ui/button-right.png b/game/engines/default/data/gfx/ui/button-right.png
deleted file mode 100644
index 6a7c2386566c5bf75d208ae6d98da69e50d011eb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 434
zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol*0U~b-^ehHajKx9jP7LeL$-D%~CV9KNFqkvE
zWw^Tc;4Vj?2xoyuWHAE+cP9ulnx8zq7AVMG;_2(kev6Bd+r;eaj^sr^A;}Wgh!W@g
z+}zZ>5(ej@)Wnk16ovB4k_-iRPv3y>Mm}+%RlJ@qjv*T7b0==}Vs;d9J->!oEK^xx
zveIv6G0inDlWwiw;F<hzeaD1jYCi<8?XFFb-WWK+<l-^AH|K8Gif!I(eZ*$Qvw7wB
z_Zp~o|Ma>1Qp0!o;=5(PKl@sz8P3=IyQVR9n)swUG4Vz-=dc#A+c3{qew^L6q5r&W
z{`>gEhgyPyS}SKRd)}kp#&}14ozR@m`8MwktSt>n7BMi8n8RkU<<XJVY#qODp1QiP
zyn(TTJwfTJHB0gzS>ebv9WBloPd2SPo6*eI`0Z?!LhgoRR@Yo5d(8qXLYo7xNbGvG
z_ptn}_ox3apCjzDt8M=_9oA4+(|;auxtC33W`-8I#H3elv}DOn;7o{q$QqGaxsg-4
ZUXi2br*w3I9WeA5JYD@<);T3K0RZHysA>QJ

diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua
index 7e2b8fcd9a..4310836bae 100644
--- a/game/modules/tome/class/GameState.lua
+++ b/game/modules/tome/class/GameState.lua
@@ -481,6 +481,17 @@ end
 --- Compute a day/night cycle
 -- Works by changing the tint of the map gradualy
 function _M:dayNightCycle()
+	local map = game.level.map
+	local shown = map.color_shown
+	local obscure = map.color_obscure
+
+	if not config.settings.tome.daynight then
+		-- Restore defaults
+		map._map:setShown(unpack(shown))
+		map._map:setObscure(unpack(obscure))
+		return
+	end
+
 	local hour, minute = game.calendar:getTimeOfDay(game.turn)
 	hour = hour + (minute / 60)
 	local tint = {r = 0.1, g = 0.1, b = 0.1}
@@ -505,9 +516,6 @@ function _M:dayNightCycle()
 		endTint = { r = 0.1, g = 0.1, b = 0.1 }
 		tint = doTint(startTint, endTint, (hour - 18) / 6)
 	end
-	local map = game.level.map
-	local shown = map.color_shown
-	local obscure = map.color_obscure
 	map._map:setShown(shown[1] * (tint.r+0.4), shown[2] * (tint.g+0.4), shown[3] * (tint.b+0.4), shown[4])
 	map._map:setObscure(obscure[1] * (tint.r+0.2), obscure[2] * (tint.g+0.2), obscure[3] * (tint.b+0.2), obscure[4])
 end
diff --git a/game/modules/tome/data/quests/lightning-overload.lua b/game/modules/tome/data/quests/lightning-overload.lua
index af4f357a83..d86b654b31 100644
--- a/game/modules/tome/data/quests/lightning-overload.lua
+++ b/game/modules/tome/data/quests/lightning-overload.lua
@@ -58,11 +58,12 @@ on_grant = function(self, who)
 		local m = game.zone:makeEntity(game.level, "actor", {special_rarity="derth_rarity"}, nil, true)
 		local spot = game.level:pickSpot{type="npc", subtype="elemental"}
 		if m and spot then
+			local x, y = util.findFreeGrid(spot.x, spot.y, 5, true, {[engine.Map.ACTOR]=true})
 			m.quest = true
 			m.on_die = function(self)
 				game.player:resolveSource():hasQuest("lightning-overload"):kill_one()
 			end
-			game.zone:addEntity(game.level, m, "actor", spot.x, spot.y)
+			game.zone:addEntity(game.level, m, "actor", x, y)
 			self.max_count = self.max_count + 1
 		end
 	end
diff --git a/game/modules/tome/dialogs/GameOptions.lua b/game/modules/tome/dialogs/GameOptions.lua
index c2668d295d..ced055a1cf 100644
--- a/game/modules/tome/dialogs/GameOptions.lua
+++ b/game/modules/tome/dialogs/GameOptions.lua
@@ -110,6 +110,15 @@ function _M:generateList()
 		self.c_list:drawItem(item)
 	end,}
 
+	local zone = Textzone.new{width=self.c_desc.w, height=self.c_desc.h, text=string.toTString"Enables of disables day/night light variations effects..#WHITE#"}
+	list[#list+1] = { zone=zone, name=string.toTString"#GOLD##{bold}#Day/night light cycle#WHITE##{normal}#", status=function(item)
+		return tostring(config.settings.tome.daynight and "enabled" or "disabled")
+	end, fct=function(item)
+		config.settings.tome.daynight = not config.settings.tome.daynight
+		game:saveSettings("tome.daynight", ("tome.daynight = %s\n"):format(tostring(config.settings.tome.daynight)))
+		self.c_list:drawItem(item)
+	end,}
+
 	local zone = Textzone.new{width=self.c_desc.w, height=self.c_desc.h, text=string.toTString"Enables smooth fog-of-war.\nDisabling it will make the fog of war look 'blocky' but might gain a slight performance increase.#WHITE#"}
 	list[#list+1] = { zone=zone, name=string.toTString"#GOLD##{bold}#Smooth fog of war#WHITE##{normal}#", status=function(item)
 		return tostring(config.settings.tome.smooth_fov and "enabled" or "disabled")
diff --git a/game/modules/tome/load.lua b/game/modules/tome/load.lua
index 5652daa9f9..ac727484b9 100644
--- a/game/modules/tome/load.lua
+++ b/game/modules/tome/load.lua
@@ -198,6 +198,7 @@ if not config.settings.tome.smooth_move then config.settings.tome.smooth_move =
 if not config.settings.tome.gfx then config.settings.tome.gfx = {size="32x32", tiles="mushroom"} end
 if type(config.settings.tome.weather_effects) == "nil" then config.settings.tome.weather_effects = true end
 if type(config.settings.tome.smooth_fov) == "nil" then config.settings.tome.smooth_fov = true end
+if type(config.settings.tome.daynight) == "nil" then config.settings.tome.daynight = true end
 Map.smooth_scroll = config.settings.tome.smooth_move
 
 return {require "mod.class.Game", require "mod.class.World"}
-- 
GitLab