Zdravím!
V "base.inc" mám jednotlivé globální proměnné (stavy scén a postav) nadefinovány takto:
global StateLoghouseOut;
V scene_init.script mám:
// default values
if(StateLoghouseOut == null)
{
StateLoghouseOut.Visited = false;
StateLoghouseOut.CameFrom = "Forest_3";
StateLoghouseOut.IsNaturalWoodIced = "no";
StateLoghouseOut.BarrelState = "untouched";
StateLoghouseOut.LogsLookState = "unseen";
}
////////////////////////////////////////////////////////////////////////////////
// setup scene according to state variables
////////////////////////////////////////////////////////////////////////////////
if(!StateLoghouseOut.Visited)
{
StateLoghouseOut.Visited = true;
// this is our first visit in this scene...
Game.Msg("StateLoghouseOut: " + ToString(StateLoghouseOut));
Game.Msg("StateLoghouseOut.Visited: " + ToString(StateLoghouseOut.Visited));
Game.Msg("StateLoghouseOut.CameFrom: " + ToString(StateLoghouseOut.CameFrom));
Game.Msg("StateLoghouseOut.IsNaturalWoodIced: " + ToString(StateLoghouseOut.IsNaturalWoodIced));
Game.Msg("StateLoghouseOut.BarrelState: " + ToString(StateLoghouseOut.BarrelState));
Game.Msg("StateLoghouseOut.LogsLookState: " + ToString(StateLoghouseOut.LogsLookState));
}
Pokud v "base.inc" nastavím StateLoghouseOut na null, pak vše funguje, jak má. Pokud ne,
tak .Visited a .CameFrom mají přednastavené hodnoty, ale ostatní mají v sobě null.
Otázka: Co mají v sobě za hodnotu nově vytvořené a neinicializované globální proměnné?
StateLoghouseOut nastavené na null v base.inc je k ničemu, protože mi při každém vstupu do
scény smaže, co už se v ní událo....
Co s tím? U ostatních scén nemám problém.
Jo a "Game.Msg("StateLoghouseOut: " + ToString(StateLoghouseOut));"
pro jistotu nedělá vůbec nic - vypadá to, že ToString() neumí převést objekt na string (třeba na "object") a
Game.Msg() pak s vráceným výsledkem neumí pracovat a tak nic neudělá. Fujtajbl! :-)
Díky za radu!
X.