Pass JSL lint

This commit is contained in:
Eric Fredricksen
2010-06-26 17:28:18 -07:00
parent 0e79521c2f
commit eb753b2c9d
3 changed files with 130 additions and 127 deletions
+6 -7
View File
@@ -15,19 +15,18 @@ function Rand32Rough() {
return (randseed = X % T32); return (randseed = X % T32);
} }
function Pick(a) {
return a[Random(a.length)];
}
function GenerateName() { function GenerateName() {
var KParts = [ var KParts = [
'br|cr|dr|fr|gr|j|kr|l|m|n|pr||||r|sh|tr|v|wh|x|y|z', 'br|cr|dr|fr|gr|j|kr|l|m|n|pr||||r|sh|tr|v|wh|x|y|z',
'a|a|e|e|i|i|o|o|u|u|ae|ie|oo|ou', 'a|a|e|e|i|i|o|o|u|u|ae|ie|oo|ou',
'b|ck|d|g|k|m|n|p|t|v|x|z']; 'b|ck|d|g|k|m|n|p|t|v|x|z'];
function Pick(s) {
var count = 1;
for (var i = 0; i < s.length; ++i)
if (s[i] == '|') ++count;
return s.split("|")[Random(count)];
}
var result = ''; var result = '';
for (var i = 0; i <= 5; ++i) for (var i = 0; i <= 5; ++i)
result += Pick(KParts[i % 3]); result += Pick(KParts[i % 3]);
+120 -116
View File
@@ -65,10 +65,6 @@ function RandSign() {
return Random(2) * 2 - 1; return Random(2) * 2 - 1;
} }
function Pick(s) {
return s[Random(s.length)];
}
function RandomLow(below) { function RandomLow(below) {
return Min(Random(below), Random(below)); return Min(Random(below), Random(below));
} }
@@ -85,8 +81,8 @@ function Length(s) {
return s.length; return s.length;
} }
String.prototype.prefix = function(s) { function Starts(s, pre) {
return 0 == this.indexOf(s); return 0 === s.indexOf(pre);
} }
function Ends(s, e) { function Ends(s, e) {
@@ -95,15 +91,15 @@ function Ends(s, e) {
function Plural(s) { function Plural(s) {
if (Ends(s,'y')) if (Ends(s,'y'))
return Copy(s,1,Length(s)-1) + 'ies' return Copy(s,1,Length(s)-1) + 'ies';
else if (Ends(s,'us')) else if (Ends(s,'us'))
return Copy(s,1,Length(s)-2) + 'i' return Copy(s,1,Length(s)-2) + 'i';
else if (Ends(s,'ch') || Ends(s,'x') || Ends(s,'s')) else if (Ends(s,'ch') || Ends(s,'x') || Ends(s,'s'))
return s + 'es' return s + 'es';
else if (Ends(s,'f')) else if (Ends(s,'f'))
return Copy(s,1,Length(s)-1) + 'ves' return Copy(s,1,Length(s)-1) + 'ves';
else if (Ends(s,'man') || Ends(s,'Man')) else if (Ends(s,'man') || Ends(s,'Man'))
return Copy(s,1,Length(s)-2) + 'en' return Copy(s,1,Length(s)-2) + 'en';
else return s + 's'; else return s + 's';
} }
@@ -113,9 +109,10 @@ function Split(s, field, separator) {
function Indefinite(s, qty) { function Indefinite(s, qty) {
if (qty == 1) { if (qty == 1) {
if (Pos(s[1], 'AEIOUÜaeiouü') > 0 if (Pos(s[1], 'AEIOUÜaeiouü') > 0)
) return 'an ' + s return 'an ' + s;
else return 'a ' + s; else
return 'a ' + s;
} else { } else {
return IntToStr(qty) + ' ' + Plural(s); return IntToStr(qty) + ' ' + Plural(s);
} }
@@ -129,7 +126,7 @@ function Definite(s, qty) {
function prefix(a, m, s, sep) { function prefix(a, m, s, sep) {
if (sep == undefined) sep = ' '; if (sep == undefined) sep = ' ';
m = Abs(m) m = Abs(m);
if (m < 1 || m > a.length) return s; // In case of screwups if (m < 1 || m > a.length) return s; // In case of screwups
return a[m-1] + sep + s; return a[m-1] + sep + s;
} }
@@ -182,12 +179,12 @@ function InterplotCinematic() {
Q('task|2|You awake in a friendly place, but the road awaits'); Q('task|2|You awake in a friendly place, but the road awaits');
break; break;
case 2: case 2:
var nemesis = ImpressiveGuy(); var nemesis2 = ImpressiveGuy();
Q("task|2|Oh sweet relief! You've reached the protection of the good " + nemesis); Q("task|2|Oh sweet relief! You've reached the protection of the good " + nemesis2);
Q('task|3|There is rejoicing, and an unnerving encouter with ' + nemesis + ' in private'); Q('task|3|There is rejoicing, and an unnerving encouter with ' + nemesis2 + ' in private');
Q('task|2|You forget your ' + BoringItem() + ' and go back to get it'); Q('task|2|You forget your ' + BoringItem() + ' and go back to get it');
Q("task|2|What's this!? You overhear something shocking!"); Q("task|2|What's this!? You overhear something shocking!");
Q('task|2|Could ' + nemesis + ' be a dirty double-dealer?'); Q('task|2|Could ' + nemesis2 + ' be a dirty double-dealer?');
Q('task|3|Who can possibly be trusted with this news!? ... Oh yes, of course'); Q('task|3|Who can possibly be trusted with this news!? ... Oh yes, of course');
break; break;
} }
@@ -196,7 +193,7 @@ function InterplotCinematic() {
function StrToInt(s) { function StrToInt(s) {
return parseInt(s); return parseInt(s, 10);
} }
function IntToStr(i) { function IntToStr(i) {
@@ -208,7 +205,7 @@ function NamedMonster(level) {
var result = ''; var result = '';
for (var i = 0; i < 5; ++i) { for (var i = 0; i < 5; ++i) {
var m = Pick(K.Monsters); var m = Pick(K.Monsters);
if (result == '' || (Abs(level-StrToInt(Split(m,1))) < Abs(level-lev))) { if (!result || (Abs(level-StrToInt(Split(m,1))) < Abs(level-lev))) {
result = Split(m,0); result = Split(m,0);
lev = StrToInt(Split(m,1)); lev = StrToInt(Split(m,1));
} }
@@ -230,26 +227,27 @@ function MonsterTask(level) {
if (level < 1) level = 1; if (level < 1) level = 1;
// level = level of puissance of opponent(s) we'll return // level = level of puissance of opponent(s) we'll return
var monster, lev;
if (Odds(1,25)) { if (Odds(1,25)) {
// Use an NPC every once in a while // Use an NPC every once in a while
var monster = ' ' + Pick(K.Races); monster = ' ' + Pick(K.Races);
if (Odds(1,2)) { if (Odds(1,2)) {
monster = 'passing' + monster + ' ' + Pick(K.Klasses); monster = 'passing' + monster + ' ' + Pick(K.Klasses);
} else { } else {
monster = PickLow(K.Titles) + ' ' + GenerateName() + ' the' + monster; monster = PickLow(K.Titles) + ' ' + GenerateName() + ' the' + monster;
definite = true; definite = true;
} }
var lev = level; lev = level;
monster = monster + '|' + IntToStr(level) + '|*'; monster = monster + '|' + IntToStr(level) + '|*';
} else if ((game.questmonster != '') && Odds(1,4)) { } else if (game.questmonster && Odds(1,4)) {
// Use the quest monster // Use the quest monster
var monster = k.Monsters[game.questmonsterindex]; monster = K.Monsters[game.questmonsterindex];
var lev = StrToInt(Split(monster,1)); lev = StrToInt(Split(monster,1));
} else { } else {
// Pick the monster out of so many random ones closest to the level we want // Pick the monster out of so many random ones closest to the level we want
var monster = Pick(K.Monsters); monster = Pick(K.Monsters);
var lev = StrToInt(Split(monster,1)); lev = StrToInt(Split(monster,1));
for (var i = 0; i < 5; ++i) { for (var ii = 0; ii < 5; ++ii) {
var m1 = Pick(K.Monsters); var m1 = Pick(K.Monsters);
if (Abs(level-StrToInt(Split(m1,1))) < Abs(level-lev)) { if (Abs(level-StrToInt(Split(m1,1))) < Abs(level-lev)) {
monster = m1; monster = m1;
@@ -307,9 +305,9 @@ function ProperCase(s) {
} }
function EquipPrice() { function EquipPrice() {
return 5 * GetI(Traits,'Level') * GetI(Traits,'Level') return 5 * GetI(Traits,'Level') * GetI(Traits,'Level') +
+ 10 * GetI(Traits,'Level') 10 * GetI(Traits,'Level') +
+ 20; 20;
} }
function Dequeue() { function Dequeue() {
@@ -317,7 +315,7 @@ function Dequeue() {
if (Split(game.task,0) == 'kill') { if (Split(game.task,0) == 'kill') {
if (Split(game.task,3) == '*') { if (Split(game.task,3) == '*') {
WinItem(); WinItem();
} else if (Split(game.task,3) != '') { } else if (Split(game.task,3)) {
Add(Inventory,LowerCase(Split(game.task,1) + ' ' + Add(Inventory,LowerCase(Split(game.task,1) + ' ' +
ProperCase(Split(game.task,3))),1); ProperCase(Split(game.task,3))),1);
} }
@@ -370,11 +368,11 @@ function Dequeue() {
game.task = 'heading'; game.task = 'heading';
} }
} else { } else {
var n = GetI(Traits, 'Level'); var nn = GetI(Traits, 'Level');
var t = MonsterTask(n); var t = MonsterTask(nn);
var InventoryLabelAlsoGameStyleTag = 3; var InventoryLabelAlsoGameStyleTag = 3;
var n = Math.floor((2 * InventoryLabelAlsoGameStyleTag * t.level * 1000) / n); nn = Math.floor((2 * InventoryLabelAlsoGameStyleTag * t.level * 1000) / nn);
Task('Executing ' + t.description, n); Task('Executing ' + t.description, nn);
} }
} }
} }
@@ -409,35 +407,37 @@ function ProgressBar(id) {
this.reset = function (newmax) { this.reset = function (newmax) {
this.Max = newmax; this.Max = newmax;
this.reposition(0); this.reposition(0);
} };
this.reposition = function (newpos) { this.reposition = function (newpos) {
this.Position = newpos; this.Position = newpos;
this.bar.css("width", 100 * this.Position / this.Max + "%") this.bar.css("width", 100 * this.Position / this.Max + "%");
} };
this.increment = function (inc) { this.increment = function (inc) {
this.reposition(this.Position + inc); this.reposition(this.Position + inc);
} };
this.done = function () { this.done = function () {
return this.Position >= this.Max; return this.Position >= this.Max;
} };
this.save = function (game) { this.save = function (game) {
game[id] = {position: this.Position, max: this.Max}; game[id] = {position: this.Position, max: this.Max};
} };
this.load = function (game) { this.load = function (game) {
this.Max = game[id].max; this.Max = game[id].max;
this.reposition(game[id].position); this.reposition(game[id].position);
}
}; };
}
function alert(k) { function alert(k) {
Plots.Add(k); Plots.Add(k);
} }
function ListBox(id) { function ListBox(id) {
this.id = id; this.id = id;
this.box = $("#"+ id); this.box = $("#"+ id);
@@ -445,11 +445,11 @@ function ListBox(id) {
this.Add = function (caption) { this.Add = function (caption) {
var tr = this.box.append("<tr><td>" + caption + "</td></tr>"); var tr = this.box.append("<tr><td>" + caption + "</td></tr>");
return tr; return tr;
} };
this.ClearSelection = function () { this.ClearSelection = function () {
this.box.find("tr").removeClass("selected"); this.box.find("tr").removeClass("selected");
} };
this.item = function (key) { this.item = function (key) {
if (typeof key == typeof 'string') { if (typeof key == typeof 'string') {
@@ -464,48 +464,48 @@ function ListBox(id) {
} else { } else {
return this.box.find("tr").eq(key); return this.box.find("tr").eq(key);
} }
} };
this.last = function () { this.last = function () {
return this.rows().last(); return this.rows().last();
} };
this.scrollToBottom = function () { this.scrollToBottom = function () {
// TODO // TODO
} };
this.scrollToTop = function () { this.scrollToTop = function () {
// TODO // TODO
} };
this.rows = function () { this.rows = function () {
return this.box.find("tr").has("td"); return this.box.find("tr").has("td");
} };
this.length = function () { this.length = function () {
return this.rows().length; return this.rows().length;
} };
this.remove = function (n) { this.remove = function (n) {
this.box.find("tr").eq(n).remove(); this.box.find("tr").eq(n).remove();
} };
this.save = function (game) { this.save = function (game) {
game[this.id] = {items: []}; game[this.id] = {items: []};
this.rows().each(function (index) { this.rows().each(function (index) {
game[this.id].items.push($(this).html()); game[this.id].items.push($(this).html());
}); });
} };
this.load = function (game) { this.load = function (game) {
this.rows().remove(); this.rows().remove();
for (var i = 0; i < game[this.id].length; ++i) for (var i = 0; i < game[this.id].length; ++i)
this.box.appeand(game[this.id][i]); this.box.appeand(game[this.id][i]);
} };
this.label = function (n) { this.label = function (n) {
return this.item(n).children().first().text(); return this.item(n).children().first().text();
}
}; };
}
var ExpBar, PlotBar, TaskBar, QuestBar; var ExpBar, PlotBar, TaskBar, QuestBar;
@@ -549,7 +549,7 @@ function GoButtonClick() {
function StrToIntDef(s, def) { function StrToIntDef(s, def) {
var result = parseInt(s); var result = parseInt(s, 10);
return isNaN(result) ? def : result; return isNaN(result) ? def : result;
} }
@@ -582,7 +582,7 @@ function Abs(x) {
function WinEquip() { function WinEquip() {
var posn = Random(Equips.length()); var posn = Random(Equips.length());
game.bestequip = posn; // remember as the "best item" game.bestequip = posn; // remember as the "best item"
if (posn == 0) { if (!posn) {
stuff = K.Weapons; stuff = K.Weapons;
better = K.OffenseAttrib; better = K.OffenseAttrib;
worse = K.OffenseBad; worse = K.OffenseBad;
@@ -597,7 +597,7 @@ function WinEquip() {
var plus = GetI(Traits,'Level') - qual; var plus = GetI(Traits,'Level') - qual;
if (plus < 0) better = worse; if (plus < 0) better = worse;
var count = 0; var count = 0;
while ((count < 2) && (plus != 0)) { while (count < 2 && plus) {
var modifier = Pick(better); var modifier = Pick(better);
qual = StrToInt(Split(modifier, 1)); qual = StrToInt(Split(modifier, 1));
modifier = Split(modifier, 0); modifier = Split(modifier, 0);
@@ -607,7 +607,7 @@ function WinEquip() {
plus -= qual; plus -= qual;
++count; ++count;
} }
if (plus != 0) name = plus + ' ' + name; if (plus) name = plus + ' ' + name;
if (plus > 0) name = '+' + name; if (plus > 0) name = '+' + name;
Put(Equips, posn, name); Put(Equips, posn, name);
@@ -617,8 +617,9 @@ function WinEquip() {
function Square(x) { return x * x; } function Square(x) { return x * x; }
function WinStat() { function WinStat() {
var i;
if (Odds(1,2)) { if (Odds(1,2)) {
var i = Stats.rows().eq(Random(Stats.length())); i = Stats.rows().eq(Random(Stats.length()));
} else { } else {
// Favor the best stat so it will tend to clump // Favor the best stat so it will tend to clump
var t = 0; var t = 0;
@@ -626,7 +627,6 @@ function WinStat() {
t += Square(StrToInt($(this).children().last().text())); t += Square(StrToInt($(this).children().last().text()));
}); });
t = Random(t); t = Random(t);
var i;
Stats.rows().each(function (index,elt) { Stats.rows().each(function (index,elt) {
i = this; i = this;
t -= Square(StrToInt($(this).children().last().text())); t -= Square(StrToInt($(this).children().last().text()));
@@ -691,14 +691,14 @@ function CompleteQuest() {
Caption = 'Fetch me ' + Indefinite(BoringItem(), 1); Caption = 'Fetch me ' + Indefinite(BoringItem(), 1);
break; break;
case 4: case 4:
var lev = 0; var mlev = 0;
level = GetI(Traits,'Level'); level = GetI(Traits,'Level');
for (var i = 1; i <= 2; ++i) { for (var ii = 1; ii <= 2; ++ii) {
montag = Random(K.Monsters.length); montag = Random(K.Monsters.length);
m = K.Monsters[montag]; m = K.Monsters[montag];
l = StrToInt(Split(m,1)); l = StrToInt(Split(m,1));
if ((i == 1) || (Abs(l - level) < Abs(lev - level))) { if ((ii == 1) || (Abs(l - level) < Abs(mlev - level))) {
lev = l; mlev = l;
game.questmonster = m; game.questmonster = m;
} }
} }
@@ -717,7 +717,7 @@ function CompleteQuest() {
} }
function toRoman(n) { function toRoman(n) {
if (n == 0) return "N"; if (!n) return "N";
var s = ""; var s = "";
function _rome(dn,ds) { function _rome(dn,ds) {
if (n >= dn) { if (n >= dn) {
@@ -730,19 +730,19 @@ function toRoman(n) {
s = "-"; s = "-";
n = -n; n = -n;
} }
while (_rome(1000,"M")) {} while (_rome(1000,"M")) {0;}
_rome(900,"CM"); _rome(900,"CM");
_rome(500,"D"); _rome(500,"D");
_rome(400,"CD"); _rome(400,"CD");
while (_rome(100,"C")) {} while (_rome(100,"C")) {0;}
_rome(90,"XC"); _rome(90,"XC");
_rome(50,"L"); _rome(50,"L");
_rome(40,"XL"); _rome(40,"XL");
while (_rome(10,"X")) {} while (_rome(10,"X")) {0;}
_rome(9,"IX"); _rome(9,"IX");
_rome(5,"V"); _rome(5,"V");
_rome(4,"IV"); _rome(4,"IV");
while (_rome(1,"I")) {} while (_rome(1,"I")) {0;}
return s; return s;
} }
@@ -750,24 +750,24 @@ function toArabic(s) {
n = 0; n = 0;
s = s.toUpperCase(); s = s.toUpperCase();
function _arab(ds,dn) { function _arab(ds,dn) {
if (!s.prefix(ds)) return false; if (!Starts(s, ds)) return false;
s = s.substr(ds.length); s = s.substr(ds.length);
n += dn; n += dn;
return true; return true;
} }
while (_arab("M",1000)) {} while (_arab("M",1000)) {0;}
_arab("CM",900); _arab("CM",900);
_arab("D",500); _arab("D",500);
_arab("CD",400); _arab("CD",400);
while (_arab("C",100)) {} while (_arab("C",100)) {0;}
_arab("XC",90); _arab("XC",90);
_arab("L",50); _arab("L",50);
_arab("XL",40); _arab("XL",40);
while (_arab("X",10)) {} while (_arab("X",10)) {0;}
_arab("IX",9); _arab("IX",9);
_arab("V",5); _arab("V",5);
_arab("IV",4); _arab("IV",4);
while (_arab("I",1)) {} while (_arab("I",1)) {0;}
return n; return n;
} }
@@ -817,8 +817,8 @@ function TMainForm_CharSheet() {
function WrLn(a) { if (a != undefined) Wr(a); Wr("\r\n"); } function WrLn(a) { if (a != undefined) Wr(a); Wr("\r\n"); }
Wr(Get(Traits,'Name')); Wr(Get(Traits,'Name'));
if (GetHostName != '') if (GetHostName())
Wr(' [' + GetHostName + ']'); Wr(' [' + GetHostName() + ']');
WrLn; WrLn;
WrLn(Get(Traits,'Race') + ' ' + Get(Traits,'Class')); WrLn(Get(Traits,'Race') + ' ' + Get(Traits,'Class'));
WrLn(Format('Level %d (exp. %d/%d)', [GetI(Traits,'Level'), ExpBar.Position, ExpBar.Max])); WrLn(Format('Level %d (exp. %d/%d)', [GetI(Traits,'Level'), ExpBar.Position, ExpBar.Max]));
@@ -838,21 +838,22 @@ function TMainForm_CharSheet() {
WrLn( Format(' CHA%7d MP Max%7d', [GetI(Stats,'CHA'), GetI(Stats,'MP Max')])); WrLn( Format(' CHA%7d MP Max%7d', [GetI(Stats,'CHA'), GetI(Stats,'MP Max')]));
WrLn(); WrLn();
WrLn( 'Equipment:'); WrLn( 'Equipment:');
for (var i = 1; i <= Equips.length()-1; ++i) for (var i = 1; i <= Equips.length()-1; ++i) {
if (Get(Equips,i) != '') if (Get(Equips,i))
WrLn( ' ' + LeftStr(Equips[i].Caption + ' ', 12) + Get(Equips,i)); WrLn( ' ' + LeftStr(Equips[i].Caption + ' ', 12) + Get(Equips,i));
}
WrLn(); WrLn();
WrLn( 'Spell Book:'); WrLn( 'Spell Book:');
for (var i = 0; i < Spells.length(); ++i) for (var s = 0; s < Spells.length(); ++s)
WrLn(' ' + Spells.label(i) + ' ' + Get(Spells,i)); WrLn(' ' + Spells.label(s) + ' ' + Get(Spells,s));
WrLn(); WrLn();
WrLn( 'Inventory (' + EncumBar.Hint + '):'); WrLn( 'Inventory (' + EncumBar.Hint + '):');
WrLn( ' ' + Indefinite('gold piece', GetI(Inventory, 'Gold'))); WrLn( ' ' + Indefinite('gold piece', GetI(Inventory, 'Gold')));
for (var i = 2; i <= Items.length()-1; ++i) { for (var ii = 2; ii <= Items.length()-1; ++ii) {
if (Pos(' of ', Inventory[i].Caption) > 0) if (Pos(' of ', Inventory[ii].Caption) > 0)
WrLn( ' ' + Definite(Inventory[i].Caption, GetI(Inventory,i))); WrLn( ' ' + Definite(Inventory[ii].Caption, GetI(Inventory,ii)));
else else
WrLn( ' ' + Indefinite(Items[i].Caption, GetI(Inventory,i))); WrLn( ' ' + Indefinite(Items[ii].Caption, GetI(Inventory,ii)));
} }
WrLn(); WrLn();
WrLn( '-- ' + DateTimeToStr(Now)); WrLn( '-- ' + DateTimeToStr(Now));
@@ -873,7 +874,7 @@ function Add(list, key, value) {
Put(list, key, value + GetI(list,key)); Put(list, key, value + GetI(list,key));
/*$IFDEF LOGGING*/ /*$IFDEF LOGGING*/
if (value == 0) return; if (!value) return;
var line = (value > 0) ? "Gained" : "Lost"; var line = (value > 0) ? "Gained" : "Lost";
if (key == 'Gold') { if (key == 'Gold') {
key = "gold piece"; key = "gold piece";
@@ -913,7 +914,7 @@ function Sum(list) {
Number.prototype.div = function (divisor) { Number.prototype.div = function (divisor) {
var dividend = this / divisor; var dividend = this / divisor;
return (dividend < 0 ? Math.ceil : Math.floor)(dividend); return (dividend < 0 ? Math.ceil : Math.floor)(dividend);
} };
function LevelUp() { function LevelUp() {
@@ -923,10 +924,8 @@ function LevelUp() {
WinStat(); WinStat();
WinStat(); WinStat();
WinSpell(); WinSpell();
with (ExpBar) { ExpBar.Position = 0;
Position = 0; ExpBar.reset(LevelUpTime(GetI(Traits,'Level')));
Max = LevelUpTime(GetI(Traits,'Level'));
}
SaveGame(); SaveGame();
Brag('l'); Brag('l');
} }
@@ -942,9 +941,9 @@ function ClearAllSelections() {
} }
function RoughTime(s) { function RoughTime(s) {
if (s < 120) return s + ' seconds' if (s < 120) return s + ' seconds';
else if (s < 60 * 120) return s.div(60) + ' minutes' else if (s < 60 * 120) return s.div(60) + ' minutes';
else if (s < 60 * 60 * 48) return s.div(3600) + ' hours' else if (s < 60 * 60 * 48) return s.div(3600) + ' hours';
else return s.div(3600 * 24) + ' days'; else return s.div(3600 * 24) + ' days';
} }
@@ -1031,13 +1030,14 @@ function TMainForm_RollCharacter() {
if (! NewGuyForm.Go()) if (! NewGuyForm.Go())
return false; return false;
Put(Traits, 'Name', NewGuyForm.Name.Text); Put(Traits, 'Name', NewGuyForm.Name.Text);
if (FileExists(GameSaveName) && if (FileExists(GameSaveName()) &&
(mrNo = MessageDlg('The saved game "' + GameSaveName + '" already exists. Do you want to overwrite it?', mtWarning, [mbYes,mbNo], 0))) { (mrNo = MessageDlg('The saved game "' + GameSaveName() + '" already exists. Do you want to overwrite it?', mtWarning, [mbYes,mbNo], 0))) {
// go around again // go around again
0;
} else { } else {
f = FileCreate(GameSaveName); f = FileCreate(GameSaveName());
if (f = -1) { if (f == -1) {
ShowMessage("The thought police don't like the name '" + GameSaveName + "'. Choose a name without \\ / : * ? \" < > || | in it."); ShowMessage("The thought police don't like the name '" + GameSaveName() + "'. Choose a name without \\ / : * ? \" < > || | in it.");
} else { } else {
FileClose(f); FileClose(f);
break; break;
@@ -1045,6 +1045,7 @@ function TMainForm_RollCharacter() {
} }
} }
/* TODO: something like this
with (NewGuyForm) { with (NewGuyForm) {
Put(Traits,'Name',Name.Text); Put(Traits,'Name',Name.Text);
Put(Traits,'Race',Race[Race.ItemIndex]); Put(Traits,'Race',Race[Race.ItemIndex]);
@@ -1060,9 +1061,11 @@ function TMainForm_RollCharacter() {
Put(Stats,'MP Max',Random(8) + INT.Tag.div(6)); Put(Stats,'MP Max',Random(8) + INT.Tag.div(6));
Put(Equips,'Weapon','Sharp Stick'); Put(Equips,'Weapon','Sharp Stick');
Put(Inventory,'Gold',0); Put(Inventory,'Gold',0);
ClearAllSelections; ClearAllSelections();
GoButtonClick(NewGuyForm); GoButtonClick(NewGuyForm);
} }
*/
return true;
} }
@@ -1210,19 +1213,20 @@ function TMainForm_LoadGame(name) {
function TMainForm_FormClose() { function TMainForm_FormClose() {
if (Timer1.Enabled) { if (Timer1.Enabled) {
Timer1.Enabled = false; Timer1.Enabled = false;
if (SaveGame()) if (SaveGame()) {
if (FReportSave) if (FReportSave)
ShowMessage('Game saved as ' + GameSaveName); ShowMessage('Game saved as ' + GameSaveName);
} }
}
FReportSave = true; FReportSave = true;
Action = caFree; Action = caFree;
} }
function TMainForm_GameSaveName() function TMainForm_GameSaveName()
{ {
if (FSaveFileName == '') { if (!FSaveFileName) {
FSaveFileName = Get(Traits,'Name'); FSaveFileName = Get(Traits,'Name');
if (GetHostName != '') if (GetHostName())
FSaveFileName = FSaveFileName + ' [' + GetHostName + ']'; FSaveFileName = FSaveFileName + ' [' + GetHostName + ']';
FSaveFileName = FSaveFileName + kFileExt; FSaveFileName = FSaveFileName + kFileExt;
FSaveFileName = ExpandFileName(PChar(FSaveFileName)); FSaveFileName = ExpandFileName(PChar(FSaveFileName));
@@ -1239,7 +1243,7 @@ function TMainForm_FormKeyDown() {
if ((ssCtrl in Shift) && (Key == ord('A'))) { if ((ssCtrl in Shift) && (Key == ord('A'))) {
ShowMessage(CharSheet); ShowMessage(CharSheet);
} }
if (GetPasskey() == 0) Exit; // no need for these things if (!GetPasskey()) Exit; // no need for these things
if ((ssCtrl in Shift) && (Key == ord('B'))) { if ((ssCtrl in Shift) && (Key == ord('B'))) {
Brag('b'); Brag('b');
Navigate(GetHostAddr + 'name=' + UrlEncode(Get(Traits,'Name'))); Navigate(GetHostAddr + 'name=' + UrlEncode(Get(Traits,'Name')));
@@ -1263,7 +1267,7 @@ function LFSR(pt, salt) {
var result = salt; var result = salt;
for (var k = 1; k <= Length(pt); ++k) for (var k = 1; k <= Length(pt); ++k)
result = Ord(pt[k]) ^ (result << 1) ^ (1 && ((result >> 31) ^ (result >> 5))); result = Ord(pt[k]) ^ (result << 1) ^ (1 && ((result >> 31) ^ (result >> 5)));
for (var k = 1; k <= 10; ++k) for (var kk = 1; kk <= 10; ++kk)
result = (result << 1) ^ (1 && ((result >> 31) ^ (result >> 5))); result = (result << 1) ^ (1 && ((result >> 31) ^ (result >> 5)));
} }
@@ -1293,7 +1297,7 @@ function Brag(trigger) {
if (GetI(Stats,i) > GetI(Stats,best)) best = i; if (GetI(Stats,i) > GetI(Stats,best)) best = i;
url = url + '&k=' + Stats[best].Caption + '+' + Get(Stats,best); url = url + '&k=' + Stats[best].Caption + '+' + Get(Stats,best);
url = url + '&a=' + UrlEncode(Plots.last().text()); url = url + '&a=' + UrlEncode(Plots.last().text());
url = url + '&h=' + UrlEncode(GetHostName); url = url + '&h=' + UrlEncode(GetHostName());
url = url + RevString; url = url + RevString;
url = url + '&p=' + IntToStr(LFSR(url, GetPasskey())); url = url + '&p=' + IntToStr(LFSR(url, GetPasskey()));
url = url + '&m=' + UrlEncode(GetMotto); url = url + '&m=' + UrlEncode(GetMotto);
@@ -1309,28 +1313,28 @@ function Brag(trigger) {
} }
function TMainForm_AuthenticateUrl(url) { function TMainForm_AuthenticateUrl(url) {
if ((GetLogin() != '') || (GetPassword() != '')) if ((GetLogin()) || (GetPassword()))
return StuffString(url, 8, 0, GetLogin()+':'+GetPassword()+'@') return StuffString(url, 8, 0, GetLogin()+':'+GetPassword()+'@');
else else
return url; return url;
} }
function TMainForm_Guildify() { function TMainForm_Guildify() {
if (GetPasskey() == 0) return; // not a online game! if (!GetPasskey()) return; // not a online game!
var url = 'cmd=guild'; var url = 'cmd=guild';
with (Traits) for (i = 0; i <= Items.length()-1; ++i) for (i = 0; i < Traits.length(); ++i)
url = url + '&' + LowerCase(Items[i].Caption[1]) + '=' + UrlEncode(Items[i].Subitems[0]); url = url + '&' + LowerCase(Traits[i].Caption[1]) + '=' + UrlEncode(Traits[i].Subitems[0]);
url = url + '&h=' + UrlEncode(GetHostName()); url = url + '&h=' + UrlEncode(GetHostName());
url = url + RevString; url = url + RevString;
url = url + '&guild=' + UrlEncode(GetGuild()); url = url + '&guild=' + UrlEncode(GetGuild());
url = url + '&p=' + IntToStr(LFSR(url, GetPasskey())); url = url + '&p=' + IntToStr(LFSR(url, GetPasskey()));
url = AuthenticateUrl(GetHostAddr + url); url = AuthenticateUrl(GetHostAddr() + url);
try { try {
b = DownloadString(url); b = DownloadString(url);
s = Take(b); s = Take(b);
if (s != '') ShowMessage(s); if (s) ShowMessage(s);
s = Take(b); s = Take(b);
if (s != '') Navigate(s); if (s) Navigate(s);
} catch (EWebError) { } catch (EWebError) {
// 'ats okay. // 'ats okay.
Abort(); Abort();
@@ -1344,7 +1348,7 @@ function TMainForm_OnQueryEndSession() {
} }
function TMainForm_OnEndSession() { function TMainForm_OnEndSession() {
if (Msg.wParam != 0) { if (Msg.wParam) {
FReportSave = false; FReportSave = false;
FormClose(Self, Action); FormClose(Self, Action);
} }
+2 -2
View File
@@ -70,7 +70,7 @@ $(document).ready(function () {
RollEm(); RollEm();
$("#RandomName").click(GenClick); $("#RandomName").click(GenClick);
if ($("#Name").text() == '') { if (!$("#Name").text()) {
GenClick(); GenClick();
$("#Name")[0].focus(); $("#Name")[0].focus();
$("#Name")[0].select(); $("#Name")[0].select();
@@ -80,7 +80,7 @@ $(document).ready(function () {
function UnrollClick() { function UnrollClick() {
randseed = stats.history.pop(); randseed = stats.history.pop();
$("#Unroll").attr("disabled", stats.history.length == 0); $("#Unroll").attr("disabled", !stats.history.length);
RollEm(); RollEm();
} }