Skip to content
Snippets Groups Projects
Commit 53a1ef4a authored by deuce's avatar deuce
Browse files

Account for mysterious 10 bytes between items array and integers array.

Set lastsave to the current minute number.  This may be used for update.tmp
or something?
parent 0173c7ee
No related branches found
No related tags found
No related merge requests found
...@@ -38,144 +38,149 @@ var progname = ''; ...@@ -38,144 +38,149 @@ var progname = '';
var items = []; var items = [];
var other_players = {}; var other_players = {};
var Player_Def = [ var Player_Def = [
{ { // 0
prop:'name', prop:'name',
type:'PString:25', type:'PString:25',
def:'' def:''
}, },
{ { // 26 (1a)
prop:'realname', prop:'realname',
type:'PString:40', type:'PString:40',
def:'' def:''
}, },
{ { // 67 (43)
prop:'money', prop:'money',
type:'SignedInteger', type:'SignedInteger',
def:0 def:0
}, },
{ { // 71 (47)
prop:'bank', prop:'bank',
type:'SignedInteger', type:'SignedInteger',
def:0 def:0
}, },
{ { // 75 (4b)
prop:'experience', prop:'experience',
type:'SignedInteger', type:'SignedInteger',
def:0 def:0
}, },
{ { // 79 (4f)
prop:'lastdayon', prop:'lastdayon',
type:'SignedInteger16', type:'SignedInteger16',
def:-1 def:-1
}, },
{ { // 81 (51)
prop:'love', prop:'love',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 83 (53)
prop:'weaponnumber', prop:'weaponnumber',
type:'SignedInteger8', type:'SignedInteger8',
def:0 def:0
}, },
{ { // 84 (54)
prop:'armournumber', prop:'armournumber',
type:'SignedInteger8', type:'SignedInteger8',
def:0 def:0
}, },
{ { // 85 (55)
prop:'race', prop:'race',
type:'PString:30', type:'PString:30',
def:'' def:''
}, },
{ { // 106 (74)
prop:'sexmale', prop:'sexmale',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 108 (76)
prop:'onnow', prop:'onnow',
type:'Integer8', type:'Integer8',
def:0 def:0
}, },
{ { // 109 (77)
prop:'battle', prop:'battle',
type:'Integer8', type:'Integer8',
def:0 def:0
}, },
{ { // 110 (78)
prop:'dead', prop:'dead',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 112 (7a)
prop:'busy', prop:'busy',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 114 (7c)
prop:'deleted', prop:'deleted',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 116 (7e)
prop:'nice', prop:'nice',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 118 (80)
prop:'map', prop:'map',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 120 (82)
prop:'e6', prop:'e6',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 122 (84)
prop:'x', prop:'x',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 124 (86)
prop:'y', prop:'y',
type:'SignedInteger16', type:'SignedInteger16',
def:0 def:0
}, },
{ { // 126 (88)
prop:'i', prop:'i',
type:'Array:99:SignedInteger16', type:'Array:99:SignedInteger16',
def:eval('var aret = []; while(aret.length < 99) aret.push(0); aret;') def:eval('var aret = []; while(aret.length < 99) aret.push(0); aret;')
}, },
{ { // 324 (144)
prop:'mystery1', // This is a mystery...
type:'String:10',
def:''
},
{ // 334 (14e)
prop:'p', prop:'p',
type:'Array:99:SignedInteger', type:'Array:99:SignedInteger',
def:eval('var aret = []; while(aret.length < 99) aret.push(0); aret;') def:eval('var aret = []; while(aret.length < 99) aret.push(0); aret;')
}, },
{ { // 730 (2da)
prop:'t', prop:'t',
type:'Array:99:Integer8', type:'Array:99:Integer8',
def:eval('var aret = []; while(aret.length < 99) aret.push(0); aret;') def:eval('var aret = []; while(aret.length < 99) aret.push(0); aret;')
}, },
{ { // 829 (33d)
prop:'lastsaved', prop:'lastsaved',
type:'SignedInteger', type:'SignedInteger',
def:-1 def:-1
}, },
{ { // 833 (341)
prop:'lastdayplayed', prop:'lastdayplayed',
type:'SignedInteger', type:'SignedInteger',
def:-1 def:-1
}, },
{ { // 837 (345)
prop:'lastmap', prop:'lastmap',
type:'SignedInteger16', type:'SignedInteger16',
def:-1 def:-1
}, },
{ { // 839 (347)
prop:'extra', prop:'extra',
type:'String:354', type:'String:344',
def:'' def:''
} }
]; ];
...@@ -516,6 +521,13 @@ function getfname(str) ...@@ -516,6 +521,13 @@ function getfname(str)
return str.toLowerCase(); return str.toLowerCase();
} }
function savetime()
{
var n = new Date();
return n.getHours()*60 + n.getMinutes();
}
function clamp_integer(v, s) function clamp_integer(v, s)
{ {
var i = parseInt(v, 10); var i = parseInt(v, 10);
...@@ -771,7 +783,6 @@ function expand_ticks(str) ...@@ -771,7 +783,6 @@ function expand_ticks(str)
str = str.replace(/`w/ig, ''); str = str.replace(/`w/ig, '');
str = str.replace(/`l/ig, ''); str = str.replace(/`l/ig, '');
str = str.replace(/`c/ig, ''); str = str.replace(/`c/ig, '');
// TODO: Not sure how to handle `c and `d is icky.
return str; return str;
} }
...@@ -2059,6 +2070,7 @@ function run_ref(sec, fname) ...@@ -2059,6 +2070,7 @@ function run_ref(sec, fname)
var tmp = pfile.new(); var tmp = pfile.new();
player.Record = tmp.Record; player.Record = tmp.Record;
ufile.new(); ufile.new();
player.lastsaved = savetime();
player.put(); player.put();
update_rec = ufile.get(player.Record); update_rec = ufile.get(player.Record);
}, },
...@@ -3733,6 +3745,9 @@ function do_map() ...@@ -3733,6 +3745,9 @@ function do_map()
status_bar(); status_bar();
} }
break; break;
case 'H':
// TODO: Hail (internode)
break;
case 'L': case 'L':
run_ref('listplayers', 'help.ref'); run_ref('listplayers', 'help.ref');
break; break;
...@@ -3772,6 +3787,9 @@ function do_map() ...@@ -3772,6 +3787,9 @@ function do_map()
view_inventory(); view_inventory();
run_ref('closestats', 'gametxt.ref'); run_ref('closestats', 'gametxt.ref');
break; break;
case 'W':
// TODO: Write mail (multiplayer)
break;
case 'Y': case 'Y':
run_ref('yell', 'help.ref'); run_ref('yell', 'help.ref');
break; break;
...@@ -3916,12 +3934,13 @@ killfiles.push(lfile); ...@@ -3916,12 +3934,13 @@ killfiles.push(lfile);
lfile.close(); lfile.close();
run_ref('startgame', 'gametxt.ref'); run_ref('startgame', 'gametxt.ref');
js.on_exit('if (player !== undefined) { update_rec.onnow = 0; update_rec.busy = 0; update_rec.battle = 0; update_rec.map = player.map; update_rec.x = player.x; update_rec.y = player.y; update_rec.put(); ufile.file.close(); player.onnow = 0; player.busy = 0; player.battle = 0; player.put(); pfile.file.close() }'); js.on_exit('if (player !== undefined) { update_rec.onnow = 0; update_rec.busy = 0; update_rec.battle = 0; update_rec.map = player.map; update_rec.x = player.x; update_rec.y = player.y; update_rec.put(); ufile.file.close(); player.onnow = 0; player.busy = 0; player.battle = 0; player.lastsaved = savetime(); player.put(); pfile.file.close() }');
players[player.Record] = update_rec; players[player.Record] = update_rec;
player.onnow = 1; player.onnow = 1;
player.busy = 0; player.busy = 0;
player.battle = 0; player.battle = 0;
player.lastdayon = state.time; player.lastdayon = state.time;
player.lastdayplayed = state.time; player.lastdayplayed = state.time;
player.lastsaved = savetime();
player.put(); player.put();
do_map(); do_map();
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment