diff --git a/xtrn/tw2/input.js b/xtrn/tw2/input.js index c012f170b6e9def7495009dd699bb78114154146..8640b731c158561485e06c5f46df33a06d45a0f5 100644 --- a/xtrn/tw2/input.js +++ b/xtrn/tw2/input.js @@ -7,8 +7,14 @@ function GetKeyEcho() return(ret); } -var lastmisc=system.node_list[bbs.node_num-1].misc; -var laststatus=system.node_list[bbs.node_num-1].status; +var lastmisc; +var laststatus; +try { + lastmisc=system.node_list[bbs.node_num-1].misc; + laststatus=system.node_list[bbs.node_num-1].status; +} +catch (e) {} + function InputFunc(values) { var str=''; diff --git a/xtrn/tw2/maint.js b/xtrn/tw2/maint.js index 1ed5c62311c6e5524f52b5650a49fe864354b2ab..e5af6b85260e3e2816437b0f68581464d38bc189 100644 --- a/xtrn/tw2/maint.js +++ b/xtrn/tw2/maint.js @@ -381,3 +381,20 @@ function CabalAttack(cabal) sector.Put(); } +function InitializeCabal() +{ + var sector=sectors.Get(85); + + uifc.pop("Initializing the Cabal"); + sector_map[85].Fighters=3000; + sector_map[85].FightersOwner=-1; + for(i=1; i<=10; i++) { + var grp=cabals.New(); + if(i==1) { + grp.Size=3000; + grp.Sector=85; + grp.Goal=85; + } + grp.Put(); + } +} diff --git a/xtrn/tw2/messages.js b/xtrn/tw2/messages.js index 0101793219b4b14ddcfb8268dd21fd66ade0dbd2..ea5dc42b2bc6b97158ef8d6f7a9288b082464011 100644 --- a/xtrn/tw2/messages.js +++ b/xtrn/tw2/messages.js @@ -54,6 +54,8 @@ var RadioMessageProperties = [ var twpmsg=new RecordFile(fname("twpmesg.dat"), PlayerMessageProperties); var twrmsg=new RecordFile(fname("twrmesg.dat"), RadioMessageProperties); +var twmsg=new File(fname("twmesg.dat")); +twmsg.open("a", true); function ReadPMsg() { @@ -166,3 +168,27 @@ function SendRadioMessage() RadioMessage(player.Record, p.Record, msg); return(true); } + +function ResetAllMessages() +{ + var i; + + uifc.pop("SysOp Messages"); + twmsg.close(); + twmsg.open("w"); + twmsg.writeln(system.timestr()+" TW 500 initialized"); + twmsg.close(); + + uifc.pop("Player Messages"); + for(i=0; i<100; i++) { + msg=twpmsg.New(); + msg.Put(); + } + + uifc.pop("Radio Messages"); + for(i=0; i<2; i++) { + msg=twrmsg.New(); + twrmsg.Read=true; + msg.Put(); + } +} diff --git a/xtrn/tw2/planets.js b/xtrn/tw2/planets.js index c4341220154d8f2dd2465edebf80c5e365f76649..47d9601d32c519e6dd864f21113cac6bffed0f9c 100644 --- a/xtrn/tw2/planets.js +++ b/xtrn/tw2/planets.js @@ -322,3 +322,15 @@ function PlanetTakeCommodity(planet, commodity, freeholds) player.Put(); return(freeholds); } + +function ResetAllPlanets() +{ + uifc.pop("Creating Planets"); + var i; + var planet=planets.New(); + planet.Put(); + for(i=0; i<Settings.MaxPlanets; i++) { + planet=planets.New(); + planet.Put(); + } +} diff --git a/xtrn/tw2/players.js b/xtrn/tw2/players.js index 338bf7ec39501d34d5279a4d325b7727a49cc938..92fca762098631445b3a39a95fca7b082767521b 100644 --- a/xtrn/tw2/players.js +++ b/xtrn/tw2/players.js @@ -717,3 +717,23 @@ function Dropfighters() } return(false); } + +function ResetAllPlayers() +{ + uifc.pop("Creating Players"); + var player=players.New(); + var loc=playerLocation.New(); + var i; + player.UserNumber=0; + player.Put(); + loc.Put(); + for(i=0; i<Settings.MaxPlayers; i++) { + player=players.New(); + player.UserNumber=0; + player.Sector=0; + player.Put(); + loc=playerLocation.New(); + loc.Sector=0; + loc.Put(); + } +} diff --git a/xtrn/tw2/ports.js b/xtrn/tw2/ports.js index 5cd3202afd236d80c7f3639652e472f53e29eb47..6d09a477cb74fff1233e6dfacc88944f46bcd4b7 100644 --- a/xtrn/tw2/ports.js +++ b/xtrn/tw2/ports.js @@ -320,3 +320,25 @@ function Transact(type, price, vary, avail) return(0); } +function InitializePorts() +{ + uifc.pop("Placing Ports"); + port=ports.New(); + port.Put(); + + /* Place ports */ + for(i=0; i<ports_init.length; i++) { + port=ports.New(); + for(prop in ports_init[i]) + port[prop]=ports_init[i][prop]; + port.Production=[ports_init[i].OreProduction, ports_init[i].OrgProduction, ports_init[i].EquProduction]; + port.PriceVariance=[ports_init[i].OreDeduction,ports_init[i].OrgDeduction,ports_init[i].EquDeduction]; + + var sector=sectors.Get(ports_init[i].Position); + sector.Port=port.Record; + sector.Put(); + ports_init[i].LastUpdate=system.datestr(time()-15*86400); + + port.Put(); + } +} diff --git a/xtrn/tw2/sectors.js b/xtrn/tw2/sectors.js index fed81561fa7ad5a33d3698ab2c567a45b8b7ebcd..98819af26990b80a257745f04ffae3d76b59d297 100644 --- a/xtrn/tw2/sectors.js +++ b/xtrn/tw2/sectors.js @@ -296,3 +296,16 @@ function ShortestPath(start, end) return(ret); } +function InitializeSectors() +{ + uifc.pop("Writing Sectors"); + /* Write sectors.dat */ + sector=sectors.New(); + sector.Put(); + for(i=0; i<sector_map.length; i++) { + sector=sectors.New(); + for(prop in sector_map[i]) + sector[prop]=sector_map[i][prop]; + sector.Put(); + } +} diff --git a/xtrn/tw2/teams.js b/xtrn/tw2/teams.js index bede88fa820e50059945883b86bb1859b349151e..1592b08121c0af1f3059f2688868639aad6c2d3f 100644 --- a/xtrn/tw2/teams.js +++ b/xtrn/tw2/teams.js @@ -273,3 +273,10 @@ function TeamTransfer(type) console.writeln(type+" Transfered!"); return(true); } + +function InitializeTeams() +{ + uifc.pop("Teams"); + var team=teams.New(); + team.Put(); +} diff --git a/xtrn/tw2/tw2.js b/xtrn/tw2/tw2.js index 2e0da8eff5bb3aad8d78870295c4f7e7cdf8b18a..7d606a8d4c846c2d82cd13c0c62159516e2a9faf 100644 --- a/xtrn/tw2/tw2.js +++ b/xtrn/tw2/tw2.js @@ -43,10 +43,8 @@ load(fname("messages.js")); load(fname("computer.js")); load(fname("input.js")); -var twmsg=new File(fname("twmesg.dat")); var twopeng=new File(fname("twopeng.dat")); twopeng.open("a", true); -twmsg.open("a", true); var today=system.datestr(system.datestr()); diff --git a/xtrn/tw2/twint500.js b/xtrn/tw2/twint500.js index be01433488bfb2d6d4b5496131ee803b4d7ffb41..34650e1288578bd16dd0f655e52edc4bc83b0383 100644 --- a/xtrn/tw2/twint500.js +++ b/xtrn/tw2/twint500.js @@ -73,8 +73,6 @@ ConfigureSettings(); if(uifc.list(WIN_MID|WIN_SAV, 0, 0, 0, 0, 0, "Reset Game?", ["No", "Yes"])!=1) exit(1); -load(fname("structs.js")); - file_remove(fname("sectors.dat")); file_remove(fname("ports.dat")); file_remove(fname("players.dat")); @@ -86,106 +84,27 @@ file_remove(fname("twrmesg.dat")); file_remove(fname("teams.dat")); file_remove(fname("twopeng.dat")); file_remove(fname("cabals.dat")); -var sectors=new RecordFile(fname("sectors.dat"), SectorProperties); -var ports=new RecordFile(fname("ports.dat"), PortProperties); -var players=new RecordFile(fname("players.dat"), PlayerProperties); -var playerLocation=new RecordFile(fname("player-loc.dat"), PlayerLocation); -var teams=new RecordFile(fname("teams.dat"), TeamProperties); -var planets=new RecordFile(fname("planets.dat"), PlanetProperties); -var twmsg=new File(fname("twmesg.dat")); -var twpmsg=new RecordFile(fname("twpmesg.dat"), PlayerMessageProperties); -var twrmsg=new RecordFile(fname("twrmesg.dat"), RadioMessageProperties); -var cabals=new RecordFile(fname("cabal.dat"), CabalProperties); -var i; - -uifc.pop("Creating Players"); -player=players.New(); -loc=playerLocation.New(); -player.UserNumber=0; -player.Put(); -loc.Put(); -for(i=0; i<Settings.MaxPlayers; i++) { - player=players.New(); - player.UserNumber=0; - player.Sector=0; - player.Put(); - loc=playerLocation.New(); - loc.Sector=0; - loc.Put(); -} - -uifc.pop("Creating Planets"); -planet=planets.New(); -planet.Put(); -for(i=0; i<Settings.MaxPlanets; i++) { - planet=planets.New(); - planet.Put(); -} - -uifc.pop("SysOp Messages"); -twmsg.open("w"); -twmsg.writeln(system.timestr()+" TW 500 initialized"); -twmsg.close(); - -uifc.pop("Player Messages"); -for(i=0; i<100; i++) { - msg=twpmsg.New(); - msg.Put(); -} -uifc.pop("Radio Messages"); -for(i=0; i<2; i++) { - msg=twrmsg.New(); - twrmsg.Read=true; - msg.Put(); -} - -uifc.pop("Teams"); -var team=teams.New(); -team.Put(); +load(fname("ports.js")); +load(fname("planets.js")); +load(fname("teams.js")); +load(fname("sectors.js")); +load(fname("maint.js")); +load(fname("players.js")); +load(fname("messages.js")); +load(fname("computer.js")); +load(fname("input.js")); -uifc.pop("Placing Ports"); -/* Place ports */ -for(i=0; i<ports_init.length; i++) { - sector_map[ports_init[i].Position-1].Port=i+1; - ports_init[i].LastUpdate=system.datestr(time()-15*86400); -} - -uifc.pop("Initializing the Cabal"); -sector_map[85-1].Fighters=3000; -sector_map[85-1].FightersOwner="The Cabal"; -for(i=1; i<=10; i++) { - var grp=cabals.New(); - if(i==1) { - grp.Size=3000; - grp.Sector=85; - grp.Goal=85; - } - grp.Put(); -} +var twmsg=new File(fname("twmesg.dat")); +var i; -uifc.pop("Writing Sectors"); -/* Write sectors.dat */ -sector=sectors.New(); -sector.Put(); -for(i=0; i<sector_map.length; i++) { - sector=sectors.New(); - for(prop in sector_map[i]) - sector[prop]=sector_map[i][prop]; - sector.Put(); -} +ResetAllPlayers(); +ResetAllPlanets(); +ResetAllMessages(); +InitializeTeams(); +InitializeSectors(); +InitializePorts(); +InitializeCabal(); -uifc.pop("Writing Ports"); -/* Write ports.ini */ -port=ports.New(); -port.Put(); -for(i=0; i<ports_init.length; i++) { - port=ports.New(); - for(prop in ports_init[i]) - port[prop]=ports_init[i][prop]; - port.Production=[ports_init[i].OreProduction, ports_init[i].OrgProduction, ports_init[i].EquProduction]; - port.PriceVariance=[ports_init[i].OreDeduction,ports_init[i].OrgDeduction,ports_init[i].EquDeduction]; - port.Put(); -} uifc.pop(); uifc.bail();