1 | diff -r d7d9470d2eec binaries/data/mods/public/maps/mapgen/painter.js
|
---|
2 | --- a/binaries/data/mods/public/maps/mapgen/painter.js Fri Nov 05 22:06:38 2010 +0000
|
---|
3 | +++ b/binaries/data/mods/public/maps/mapgen/painter.js Fri Nov 05 23:46:52 2010 +0000
|
---|
4 | @@ -76,7 +76,7 @@
|
---|
5 | {
|
---|
6 | var ny = y+dy;
|
---|
7 |
|
---|
8 | - if (g_Map.validT(nx, ny) && g_Map.area[nx][ny] != area && !saw[nx][ny])
|
---|
9 | + if (g_Map.validT(nx, ny) && g_Map.area[nx][ny] && g_Map.area[nx][ny] != area && !saw[nx][ny])
|
---|
10 | {
|
---|
11 | saw[nx][ny] = 1;
|
---|
12 | dist[nx][ny] = 0;
|
---|
13 | @@ -119,7 +119,7 @@
|
---|
14 | {
|
---|
15 | var ny = py+dy;
|
---|
16 |
|
---|
17 | - if (g_Map.validT(nx, ny) && g_Map.area[nx][ny] == area && !saw[nx][ny])
|
---|
18 | + if (g_Map.validT(nx, ny) && g_Map.area[nx][ny] && g_Map.area[nx][ny] == area && !saw[nx][ny])
|
---|
19 | {
|
---|
20 | saw[nx][ny] = 1;
|
---|
21 | dist[nx][ny] = d+1;
|
---|
22 | @@ -165,7 +165,7 @@
|
---|
23 | {
|
---|
24 | if (g_Map.validT(x, y))
|
---|
25 | {
|
---|
26 | - return g_Map.area[x][y] == area;
|
---|
27 | + return (g_Map.area[x][y] && g_Map.area[x][y] == area);
|
---|
28 | }
|
---|
29 | else
|
---|
30 | {
|
---|
31 | diff -r d7d9470d2eec source/graphics/MapGenerator.cpp
|
---|
32 | --- a/source/graphics/MapGenerator.cpp Fri Nov 05 22:06:38 2010 +0000
|
---|
33 | +++ b/source/graphics/MapGenerator.cpp Fri Nov 05 23:46:52 2010 +0000
|
---|
34 | @@ -19,6 +19,7 @@
|
---|
35 |
|
---|
36 | #include "MapGenerator.h"
|
---|
37 |
|
---|
38 | +#include "lib/timer.h"
|
---|
39 | #include "ps/CLogger.h"
|
---|
40 |
|
---|
41 | #define LOG_CATEGORY L"graphics"
|
---|
42 | @@ -31,6 +32,8 @@
|
---|
43 |
|
---|
44 | CScriptValRooted CMapGenerator::GenerateMap(const CStrW& scriptFile, const CScriptValRooted& settings)
|
---|
45 | {
|
---|
46 | + TIMER(L"GenerateMap");
|
---|
47 | +
|
---|
48 | // Init map generator
|
---|
49 | jsval global = m_ScriptInterface.GetGlobalObject();
|
---|
50 |
|
---|
51 | diff -r d7d9470d2eec source/graphics/MapReader.cpp
|
---|
52 | --- a/source/graphics/MapReader.cpp Fri Nov 05 22:06:38 2010 +0000
|
---|
53 | +++ b/source/graphics/MapReader.cpp Fri Nov 05 23:46:52 2010 +0000
|
---|
54 | @@ -1438,7 +1438,7 @@
|
---|
55 |
|
---|
56 | #define GET_TERRAIN_PROPERTY(prop, out)\
|
---|
57 | if (!pSimulation2->GetScriptInterface().GetProperty(m_MapData.get(), #prop, out))\
|
---|
58 | - LOGERROR(L"CMapReader::ParseTerrain() failed to get '" L#prop L"' property");\
|
---|
59 | + LOGERROR(L"CMapReader::ParseTerrain() failed to get '%hs' property", #prop);\
|
---|
60 |
|
---|
61 | size_t size;
|
---|
62 | GET_TERRAIN_PROPERTY(size, size)
|
---|
63 | @@ -1548,7 +1548,7 @@
|
---|
64 |
|
---|
65 | #define GET_ENVIRONMENT_PROPERTY(val, prop, out)\
|
---|
66 | if (!pSimulation2->GetScriptInterface().GetProperty(val, #prop, out))\
|
---|
67 | - LOGWARNING(L"CMapReader::ParseEnvironment() failed to get '" L#prop L"' property");\
|
---|
68 | + LOGWARNING(L"CMapReader::ParseEnvironment() failed to get '%hs' property", #prop);\
|
---|
69 |
|
---|
70 | CScriptValRooted envObj;
|
---|
71 | GET_ENVIRONMENT_PROPERTY(m_MapData.get(), Environment, envObj)
|
---|
72 | @@ -1627,7 +1627,7 @@
|
---|
73 |
|
---|
74 | #define GET_CAMERA_PROPERTY(val, prop, out)\
|
---|
75 | if (!pSimulation2->GetScriptInterface().GetProperty(val, #prop, out))\
|
---|
76 | - LOGWARNING(L"CMapReader::ParseCamera() failed to get '" L#prop L"' property");\
|
---|
77 | + LOGWARNING(L"CMapReader::ParseCamera() failed to get '%hs' property", #prop);\
|
---|
78 |
|
---|
79 | CScriptValRooted cameraObj;
|
---|
80 | GET_CAMERA_PROPERTY(m_MapData.get(), Camera, cameraObj)
|
---|
81 | diff -r d7d9470d2eec source/ps/GameSetup/GameSetup.cpp
|
---|
82 | --- a/source/ps/GameSetup/GameSetup.cpp Fri Nov 05 22:06:38 2010 +0000
|
---|
83 | +++ b/source/ps/GameSetup/GameSetup.cpp Fri Nov 05 23:46:52 2010 +0000
|
---|
84 | @@ -881,9 +881,17 @@
|
---|
85 |
|
---|
86 | ScriptInterface& scriptInterface = g_Game->GetSimulation2()->GetScriptInterface();
|
---|
87 | CScriptValRooted attrs;
|
---|
88 | - scriptInterface.Eval("({})", attrs);
|
---|
89 | - scriptInterface.SetProperty(attrs.get(), "mapType", std::string("scenario"), false);
|
---|
90 | - scriptInterface.SetProperty(attrs.get(), "map", std::string(autostartMap), false);
|
---|
91 | + scriptInterface.Eval("({settings: { Size: 208, Seed: 0, BaseTerrain: 'grass1_spring', BaseHeight: 0, PlayerData: [{Civ:'hele'},{Civ:'hele'}], RevealMap: false, LockTeams: false, GameType: 'conquest' } })", attrs);
|
---|
92 | + if (args.Has("autostart-random"))
|
---|
93 | + {
|
---|
94 | + scriptInterface.SetProperty(attrs.get(), "script", std::string(autostartMap), false);
|
---|
95 | + scriptInterface.SetProperty(attrs.get(), "mapType", std::string("random"), false);
|
---|
96 | + }
|
---|
97 | + else
|
---|
98 | + {
|
---|
99 | + scriptInterface.SetProperty(attrs.get(), "map", std::string(autostartMap), false);
|
---|
100 | + scriptInterface.SetProperty(attrs.get(), "mapType", std::string("scenario"), false);
|
---|
101 | + }
|
---|
102 |
|
---|
103 | CScriptValRooted mpInitData;
|
---|
104 | g_GUI->GetScriptInterface().Eval("({isNetworked:true, playerAssignments:{}})", mpInitData);
|
---|
105 | diff -r d7d9470d2eec source/scriptinterface/ScriptConversions.cpp
|
---|
106 | --- a/source/scriptinterface/ScriptConversions.cpp Fri Nov 05 22:06:38 2010 +0000
|
---|
107 | +++ b/source/scriptinterface/ScriptConversions.cpp Fri Nov 05 23:46:52 2010 +0000
|
---|
108 | @@ -71,6 +71,16 @@
|
---|
109 | return true;
|
---|
110 | }
|
---|
111 |
|
---|
112 | +template<> bool ScriptInterface::FromJSVal<u64>(JSContext* cx, jsval v, u64& out)
|
---|
113 | +{
|
---|
114 | + uint32 ret;
|
---|
115 | + WARN_IF_NOT(JSVAL_IS_INT(v));
|
---|
116 | + if (!JS_ValueToECMAUint32(cx, v, &ret))
|
---|
117 | + return false;
|
---|
118 | + out = ret;
|
---|
119 | + return true;
|
---|
120 | +}
|
---|
121 | +
|
---|
122 | template<> bool ScriptInterface::FromJSVal<u32>(JSContext* cx, jsval v, u32& out)
|
---|
123 | {
|
---|
124 | uint32 ret;
|
---|