mirror of
https://bitbucket.org/grumdrig/pq.git
synced 2026-09-29 00:33:59 -06:00
[contents of README]
ProgressQuest v6.2 (probably as released) ----------------------------------------- This directory represents an ex post facto rendering of pq6 in its various versions in svn, so that changes will be trackable thataway. The version as of this moment in svn is 6.2 (but I had two copies around, so I'm not positive this is the final one, and not the prev rev checked in) (I didn't add this file in PQ 6.0, but after that you can use this README to trace the checkin history using svn.)
This commit is contained in:
BIN
Binary file not shown.
+8
-3
@@ -342,7 +342,8 @@ object K: TK
|
||||
'Galoon'
|
||||
'Bijou'
|
||||
'Spangle'
|
||||
'Gimcrack')
|
||||
'Gimcrack'
|
||||
'Hood')
|
||||
TabOrder = 6
|
||||
WordWrap = False
|
||||
end
|
||||
@@ -493,7 +494,8 @@ object K: TK
|
||||
'tuppence'
|
||||
'casket'
|
||||
'nosegay'
|
||||
'trinket')
|
||||
'trinket'
|
||||
'credenza')
|
||||
TabOrder = 9
|
||||
WordWrap = False
|
||||
end
|
||||
@@ -729,7 +731,10 @@ object K: TK
|
||||
'Koala|2|heart'
|
||||
'Wolf|2|paw'
|
||||
'Whippet|2|collar'
|
||||
'Uruk|2|boot')
|
||||
'Uruk|2|boot'
|
||||
'Poroid|4|node'
|
||||
'Moakum|8|frenum'
|
||||
'Fly|0|*')
|
||||
TabOrder = 10
|
||||
WordWrap = False
|
||||
end
|
||||
|
||||
@@ -37,10 +37,6 @@ type
|
||||
Label13: TLabel;
|
||||
DefenseBad: TMemo;
|
||||
Label14: TLabel;
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
|
||||
Binary file not shown.
@@ -105,7 +105,7 @@ object FrontForm: TFrontForm
|
||||
Height = 13
|
||||
Align = alBottom
|
||||
Alignment = taCenter
|
||||
Caption = #169' 2002 Eric Fredricksen - v6.2'
|
||||
Caption = #169' 2003 Eric Fredricksen - v6.2'
|
||||
Color = clWhite
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 11382189
|
||||
|
||||
@@ -523,15 +523,15 @@ object MainForm: TMainForm
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
object vars: TPanel
|
||||
Left = 84
|
||||
Top = 32
|
||||
Width = 177
|
||||
Left = 188
|
||||
Top = 24
|
||||
Width = 77
|
||||
Height = 129
|
||||
Caption = 'vars'
|
||||
TabOrder = 3
|
||||
Visible = False
|
||||
object fTask: TLabel
|
||||
Left = 20
|
||||
Left = 12
|
||||
Top = 16
|
||||
Width = 27
|
||||
Height = 13
|
||||
@@ -541,7 +541,7 @@ object MainForm: TMainForm
|
||||
ParentColor = False
|
||||
end
|
||||
object fQuest: TLabel
|
||||
Left = 24
|
||||
Left = 12
|
||||
Top = 36
|
||||
Width = 31
|
||||
Height = 13
|
||||
@@ -551,7 +551,7 @@ object MainForm: TMainForm
|
||||
ParentColor = False
|
||||
end
|
||||
object fQueue: TListBox
|
||||
Left = 48
|
||||
Left = 12
|
||||
Top = 76
|
||||
Width = 49
|
||||
Height = 45
|
||||
@@ -608,7 +608,43 @@ object MainForm: TMainForm
|
||||
Top = 52
|
||||
Bitmap = {
|
||||
494C01010200040004000C000C00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||
0000000000003600000028000000300000000C00000001001000000000008004
|
||||
0000000000003600000028000000300000000C00000001002000000000000009
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
unit Main;
|
||||
{ copyright (c)2002 Eric Fredricksen all rights reserved }
|
||||
|
||||
{$UNDEF CHEATS}
|
||||
{$UNDEF LOGGING}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
@@ -8,6 +11,11 @@ uses
|
||||
Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, ImgList, Menus, ShellAPI;
|
||||
|
||||
const
|
||||
// revs:
|
||||
// 4: pq 6.2
|
||||
// 3: pq 6.1
|
||||
// 2: pq 6.0
|
||||
// 1: pq 6.0, some early release I guess; don't remember
|
||||
RevString = '&rev=4';
|
||||
wmIconTray = WM_USER + Ord('t');
|
||||
kFileExt = '.pq';
|
||||
@@ -91,8 +99,11 @@ type
|
||||
procedure OnEndSession(var Msg : TMessage); message WM_ENDSESSION;
|
||||
procedure RestoreIt;
|
||||
function AuthenticateUrl(url: String): String;
|
||||
{$IFDEF LOGGING}
|
||||
procedure Log(line: String);
|
||||
{$ENDIF}
|
||||
procedure ExportCharSheet;
|
||||
function CharSheet: String;
|
||||
public
|
||||
FTrayIcon: TNotifyIconData;
|
||||
FReportSave: Boolean;
|
||||
@@ -144,7 +155,6 @@ uses Web, StrUtils, NewGuy, Math, Config, Front, zlibex, SelServ, Login,
|
||||
mmsystem, Registry, ShlObj;
|
||||
|
||||
{$R *.dfm}
|
||||
{$DEFINE CHEATS}
|
||||
|
||||
// Returns '' if not there, which is lame, but okay for my purposes
|
||||
function RegRead(root: HKEY; path, name: String): String;
|
||||
@@ -207,8 +217,7 @@ begin
|
||||
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
|
||||
uCallbackMessage := wmIconTray;
|
||||
hIcon := Application.Icon.Handle;
|
||||
StrPCopy(szTip, Caption);
|
||||
//a.szTip := 'Progress Quest';
|
||||
StrPLCopy(szTip, Caption, 63);
|
||||
end;
|
||||
Application.Minimize;
|
||||
ShowWindow(Application.Handle, SW_HIDE);
|
||||
@@ -230,11 +239,13 @@ begin
|
||||
end;
|
||||
|
||||
procedure TMainForm.OnTrayMessage(var Msg: TMessage);
|
||||
//var p : TPoint;
|
||||
begin
|
||||
case Msg.lParam of
|
||||
WM_LBUTTONDOWN, WM_RBUTTONDOWN:
|
||||
RestoreIt;
|
||||
|
||||
WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK:
|
||||
RestoreIt;
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -245,8 +256,8 @@ begin
|
||||
//Shell_NotifyIcon(NIM_ADD, @MainForm.FTrayIcon);
|
||||
end;
|
||||
MainForm.Timer1.Enabled := True;
|
||||
// BS location for this but
|
||||
MainForm.Caption := 'ProgressQuest - ' + ChangeFileExt(MainForm.GameSaveName, '');
|
||||
// BS location for this, but...
|
||||
MainForm.Caption := 'ProgressQuest - ' + ChangeFileExt(ExtractFileName(MainForm.GameSaveName), '');
|
||||
end;
|
||||
|
||||
function TMainForm.GetPasskey: Integer; begin Result := Traits.Tag; end;
|
||||
@@ -379,7 +390,7 @@ function Young(m: Integer; s: String): String;
|
||||
begin
|
||||
Result := IntToStr(m) + s; // in case I screw up
|
||||
case -m of
|
||||
-5,5: Result := 'fetal ' + s;
|
||||
-5,5: Result := 'foetal ' + s;
|
||||
-4,4: Result := 'baby ' + s;
|
||||
-3,3: Result := 'preadolescent ' + s;
|
||||
-2,2: Result := 'teenage ' + s;
|
||||
@@ -767,7 +778,9 @@ begin
|
||||
end;
|
||||
with Quests do begin
|
||||
if Items.Count > 0 then begin
|
||||
{$IFDEF LOGGING}
|
||||
Log('Quest completed: ' + Items[Items.Count-1].Caption);
|
||||
{$ENDIF}
|
||||
Items[Items.Count-1].StateIndex := 1;
|
||||
case Random(4) of
|
||||
0: WinSpell;
|
||||
@@ -824,7 +837,9 @@ begin
|
||||
fQuest.Caption := '';
|
||||
end;
|
||||
end;
|
||||
{$IFDEF LOGGING}
|
||||
Log('Commencing quest: ' + Caption);
|
||||
{$ENDIF}
|
||||
StateIndex := 0;
|
||||
MakeVisible(false);
|
||||
end;
|
||||
@@ -904,11 +919,12 @@ begin
|
||||
Brag('a');
|
||||
end;
|
||||
|
||||
{$IFDEF LOGGING}
|
||||
procedure TMainForm.Log(line: String);
|
||||
var
|
||||
stamp: String;
|
||||
logname: String;
|
||||
log: TextFile;
|
||||
log: Text;
|
||||
begin
|
||||
if FLogEvents then begin
|
||||
logname := ChangeFileExt(GameSaveName, '.log');
|
||||
@@ -920,63 +936,77 @@ begin
|
||||
CloseFile(log);
|
||||
end;
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
procedure TMainForm.ExportCharSheet;
|
||||
var
|
||||
f: TextFile;
|
||||
i: Integer;
|
||||
begin
|
||||
AssignFile(f, ChangeFileExt(GameSaveName, '.sheet'));
|
||||
Rewrite(f);
|
||||
Write(f,Get(Traits,'Name'));
|
||||
Write(f, CharSheet);
|
||||
Flush(f);
|
||||
CloseFile(f);
|
||||
end;
|
||||
|
||||
function TMainForm.CharSheet: String;
|
||||
var
|
||||
i: Integer;
|
||||
f: String;
|
||||
procedure Wr(a: String); begin f := f + a; end;
|
||||
procedure WrLn(a: String); overload; begin Wr(a + #13#10); end;
|
||||
procedure WrLn; overload; begin Wr(#13#10); end;
|
||||
begin
|
||||
Wr(Get(Traits,'Name'));
|
||||
if GetHostName <> '' then
|
||||
Write(f,' [' + GetHostName + ']');
|
||||
WriteLn(f);
|
||||
WriteLn(f,Get(Traits,'Race') + ' ' + Get(Traits,'Class'));
|
||||
WriteLn(f,Format('Level %d (exp. %d/%d)', [GetI(Traits,'Level'), ExpBar.Position, ExpBar.Max]));
|
||||
//WriteLn(f,'Level ' + Get(Traits,'Level') + ' (' + ExpBar.Hint + ')');
|
||||
WriteLn(f);
|
||||
Wr(' [' + GetHostName + ']');
|
||||
WrLn;
|
||||
WrLn(Get(Traits,'Race') + ' ' + Get(Traits,'Class'));
|
||||
WrLn(Format('Level %d (exp. %d/%d)', [GetI(Traits,'Level'), ExpBar.Position, ExpBar.Max]));
|
||||
//WrLn('Level ' + Get(Traits,'Level') + ' (' + ExpBar.Hint + ')');
|
||||
WrLn;
|
||||
with Plots do if Items.Count > 0 then
|
||||
WriteLn(f,'Plot stage: ' + Items[Items.Count-1].Caption + ' (' + PlotBar.Hint + ')');
|
||||
WrLn('Plot stage: ' + Items[Items.Count-1].Caption + ' (' + PlotBar.Hint + ')');
|
||||
with Quests do if Items.Count > 0 then
|
||||
WriteLn(f,'Quest: ' + Items[Items.Count-1].Caption + ' (' + QuestBar.Hint + ')');
|
||||
WriteLn(f);
|
||||
WriteLn(f, 'Stats:');
|
||||
WriteLn(f, Format(' STR%7d', [GetI(Stats,'STR')]));
|
||||
WriteLn(f, Format(' CON%7d', [GetI(Stats,'CON')]));
|
||||
WriteLn(f, Format(' DEX%7d', [GetI(Stats,'DEX')]));
|
||||
WriteLn(f, Format(' INT%7d', [GetI(Stats,'INT')]));
|
||||
WriteLn(f, Format(' WIS%7d HP Max%7d', [GetI(Stats,'WIS'), GetI(Stats,'HP Max')]));
|
||||
WriteLn(f, Format(' CHA%7d MP Max%7d', [GetI(Stats,'CHA'), GetI(Stats,'MP Max')]));
|
||||
WriteLn(f);
|
||||
WriteLn(f, 'Equipment:');
|
||||
WrLn('Quest: ' + Items[Items.Count-1].Caption + ' (' + QuestBar.Hint + ')');
|
||||
WrLn;
|
||||
WrLn( 'Stats:');
|
||||
WrLn( Format(' STR%7d', [GetI(Stats,'STR')]));
|
||||
WrLn( Format(' CON%7d', [GetI(Stats,'CON')]));
|
||||
WrLn( Format(' DEX%7d', [GetI(Stats,'DEX')]));
|
||||
WrLn( Format(' INT%7d', [GetI(Stats,'INT')]));
|
||||
WrLn( Format(' WIS%7d HP Max%7d', [GetI(Stats,'WIS'), GetI(Stats,'HP Max')]));
|
||||
WrLn( Format(' CHA%7d MP Max%7d', [GetI(Stats,'CHA'), GetI(Stats,'MP Max')]));
|
||||
WrLn;
|
||||
WrLn( 'Equipment:');
|
||||
for i := 1 to Equips.Items.Count-1 do
|
||||
if Get(Equips,i) <> '' then
|
||||
WriteLn(f, ' ' + LeftStr(Equips.Items[i].Caption + ' ', 12) + Get(Equips,i));
|
||||
WriteLn(f);
|
||||
WriteLn(f, 'Spell Book:');
|
||||
WrLn( ' ' + LeftStr(Equips.Items[i].Caption + ' ', 12) + Get(Equips,i));
|
||||
WrLn;
|
||||
WrLn( 'Spell Book:');
|
||||
with Spells do
|
||||
for i := 1 to Items.Count-1 do
|
||||
WriteLn(f, ' ' + Items[i].Caption + ' ' + Get(Spells,i));
|
||||
WriteLn(f);
|
||||
WriteLn(f, 'Inventory (' + EncumBar.Hint + '):');
|
||||
WriteLn(f, ' ' + Indefinite('gold piece', GetI(Inventory, 'Gold')));
|
||||
WrLn( ' ' + Items[i].Caption + ' ' + Get(Spells,i));
|
||||
WrLn;
|
||||
WrLn( 'Inventory (' + EncumBar.Hint + '):');
|
||||
WrLn( ' ' + Indefinite('gold piece', GetI(Inventory, 'Gold')));
|
||||
with Inventory do
|
||||
for i := 2 to Items.Count-1 do
|
||||
if Pos(' of ', Items[i].Caption) > 0
|
||||
then WriteLn(f, ' ' + Definite(Items[i].Caption, GetI(Inventory,i)))
|
||||
else WriteLn(f, ' ' + Indefinite(Items[i].Caption, GetI(Inventory,i)));
|
||||
WriteLn(f);
|
||||
WriteLn(f, '-- ' + DateTimeToStr(Now));
|
||||
WriteLn(f, '-- Progress Quest 6.2 - http://progressquest.com/');
|
||||
Flush(f);
|
||||
CloseFile(f);
|
||||
then WrLn( ' ' + Definite(Items[i].Caption, GetI(Inventory,i)))
|
||||
else WrLn( ' ' + Indefinite(Items[i].Caption, GetI(Inventory,i)));
|
||||
WrLn;
|
||||
WrLn( '-- ' + DateTimeToStr(Now));
|
||||
WrLn( '-- Progress Quest 6.2 - http://progressquest.com/');
|
||||
Result := f;
|
||||
end;
|
||||
|
||||
procedure TMainForm.Task(caption: String; msec: Integer);
|
||||
begin
|
||||
Kill.SimpleText := caption + '...';
|
||||
{$IFDEF LOGGING}
|
||||
Log(Kill.SimpleText);
|
||||
{$ENDIF}
|
||||
with TaskBar do begin
|
||||
Position := 0;
|
||||
Max := msec;
|
||||
@@ -996,7 +1026,9 @@ begin
|
||||
end;
|
||||
if value < 0 then value := -value;
|
||||
line := line + ' ' + Indefinite(key, value);
|
||||
{$IFDEF LOGGING}
|
||||
Log(line);
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
procedure TMainForm.AddR(list: TListView; key: String; value: Integer);
|
||||
@@ -1137,7 +1169,7 @@ begin
|
||||
|
||||
FReportSave := true;
|
||||
FLogEvents := false;
|
||||
FMakeBackups := false;
|
||||
FMakeBackups := true;
|
||||
FMinToTray := true;
|
||||
FExportSheets := false;
|
||||
|
||||
@@ -1197,6 +1229,21 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
const
|
||||
KUsage =
|
||||
'Usage: pq [flags] [game.pq]'#10 +
|
||||
#10 +
|
||||
'Flags:'#10 +
|
||||
' -no-backup Do not make a backup file when saving the game'#10 +
|
||||
{$IFDEF LOGGING}
|
||||
' -log Create a text log of events as they occur in the game'#10 +
|
||||
{$ENDIF}
|
||||
' -no-report-save Do not display the "Game saved" message when saving'#10 +
|
||||
' -no-tray Do not minimize to the system tray'#10 +
|
||||
' -export Export a text character sheet periodically'#10 +
|
||||
' -export-only Export a text character sheet now, then exit'#10 +
|
||||
' -no-proxy Do not use Internet Explorer proxy settings'#10 +
|
||||
' -help Display this chatter (and exit)'#10 ;
|
||||
|
||||
procedure TMainForm.FormShow(Sender: TObject);
|
||||
var
|
||||
@@ -1207,10 +1254,12 @@ begin
|
||||
done := false;
|
||||
exportandexit := false;
|
||||
for i := 1 to ParamCount do begin
|
||||
if ParamStr(i) = '-log'
|
||||
then FLogEvents := true
|
||||
else if ParamStr(i) = '-backup'
|
||||
if ParamStr(i) = '-backup'
|
||||
then FMakeBackups := true
|
||||
{$IFDEF LOGGING}
|
||||
else if ParamStr(i) = '-log'
|
||||
then FLogEvents := true
|
||||
{$ENDIF}
|
||||
else if ParamStr(i) = '-no-report-save'
|
||||
then FReportSave := false
|
||||
else if ParamStr(i) = '-no-tray'
|
||||
@@ -1219,7 +1268,14 @@ begin
|
||||
then FExportSheets := true
|
||||
else if ParamStr(i) = '-export-only'
|
||||
then exportandexit := true
|
||||
else begin
|
||||
else if ParamStr(i) = '-no-proxy'
|
||||
then ProxyOK := false
|
||||
else if ParamStr(i) = '-help'
|
||||
then begin
|
||||
ShowMessage(KUsage);
|
||||
Close;
|
||||
Exit;
|
||||
end else begin
|
||||
LoadGame(ParamStr(i));
|
||||
if exportandexit then begin
|
||||
ExportCharSheet;
|
||||
@@ -1296,7 +1352,9 @@ var
|
||||
m: TMemoryStream;
|
||||
i: Integer;
|
||||
begin
|
||||
{$IFDEF LOGGING}
|
||||
Log('Saving game: ' + GameSaveName);
|
||||
{$ENDIF}
|
||||
Result := true;
|
||||
try
|
||||
if FMakeBackups then begin
|
||||
@@ -1353,7 +1411,9 @@ begin
|
||||
for i := 0 to ComponentCount-1 do
|
||||
m.ReadComponent(Components[i]);
|
||||
m.Free;
|
||||
{$IFDEF LOGGING}
|
||||
Log('Loaded game: ' + name);
|
||||
{$ENDIF}
|
||||
StartTimer;
|
||||
TriggerAutosizes;
|
||||
end;
|
||||
@@ -1402,6 +1462,9 @@ begin
|
||||
Cheats.Visible := not Cheats.Visible;
|
||||
{$ENDIF}
|
||||
end;
|
||||
if (ssCtrl in Shift) and (Key = ord('A')) then begin
|
||||
ShowMessage(CharSheet);
|
||||
end;
|
||||
if GetPasskey = 0 then Exit; // no need for these things
|
||||
if (ssCtrl in Shift) and (Key = ord('B')) then begin
|
||||
Brag('b');
|
||||
@@ -1420,8 +1483,7 @@ end;
|
||||
|
||||
procedure Navigate(url: String);
|
||||
begin
|
||||
ShellExecute(GetDesktopWindow(), 'open', PChar(url),
|
||||
nil, '', SW_SHOW);
|
||||
ShellExecute(GetDesktopWindow(), 'open', PChar(url), nil, '', SW_SHOW);
|
||||
end;
|
||||
|
||||
function LFSR(pt: String; salt: Integer): Integer;
|
||||
|
||||
BIN
Binary file not shown.
+11
-2
@@ -85,6 +85,7 @@ object NewGuyForm: TNewGuyForm
|
||||
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnActivate = FormActivate
|
||||
OnShow = FormShow
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
@@ -298,7 +299,7 @@ object NewGuyForm: TNewGuyForm
|
||||
object Name: TLabeledEdit
|
||||
Left = 8
|
||||
Top = 20
|
||||
Width = 185
|
||||
Width = 165
|
||||
Height = 21
|
||||
EditLabel.Width = 28
|
||||
EditLabel.Height = 13
|
||||
@@ -307,7 +308,6 @@ object NewGuyForm: TNewGuyForm
|
||||
LabelSpacing = 3
|
||||
MaxLength = 30
|
||||
TabOrder = 4
|
||||
Text = 'Grumdrig'
|
||||
end
|
||||
object OldRolls: TListBox
|
||||
Left = 396
|
||||
@@ -354,6 +354,15 @@ object NewGuyForm: TNewGuyForm
|
||||
TabOrder = 8
|
||||
Visible = False
|
||||
end
|
||||
object Gen: TButton
|
||||
Left = 176
|
||||
Top = 20
|
||||
Width = 17
|
||||
Height = 22
|
||||
Caption = '?'
|
||||
TabOrder = 9
|
||||
OnClick = GenClick
|
||||
end
|
||||
object PoorCodeDesign: TNMURL
|
||||
Left = 336
|
||||
Top = 268
|
||||
|
||||
+42
-2
@@ -36,11 +36,14 @@ type
|
||||
Account: TLabeledEdit;
|
||||
Password: TLabeledEdit;
|
||||
ApplicationEvents1: TApplicationEvents;
|
||||
Gen: TButton;
|
||||
procedure RerollClick(Sender: TObject);
|
||||
procedure UnrollClick(Sender: TObject);
|
||||
procedure SoldClick(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure ApplicationEvents1Minimize(Sender: TObject);
|
||||
procedure GenClick(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
private
|
||||
procedure RollEm;
|
||||
function GetAccount: String;
|
||||
@@ -130,7 +133,6 @@ begin
|
||||
ItemIndex := Random(Items.Count);
|
||||
with Klass do
|
||||
ItemIndex := Random(Items.Count);
|
||||
Name.SetFocus;
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -178,6 +180,7 @@ begin
|
||||
if (MainForm.Label8.Tag and 16) = 0
|
||||
then url := MainForm.GetHostAddr
|
||||
else url := 'http://www.progressquest.com/create.php?';
|
||||
// url := StringReplace(url, '.com/', '.com/dev/', []);
|
||||
if (GetAccount <> '') or (GetPassword <> '') then
|
||||
url := StuffString(url, 8, 0, GetAccount+':'+GetPassword+'@');
|
||||
args := 'cmd=create' +
|
||||
@@ -204,10 +207,47 @@ begin
|
||||
Server.SendHeader.Values['Guild'] := MainForm.GetGuild;
|
||||
end;
|
||||
}
|
||||
|
||||
|
||||
procedure TNewGuyForm.ApplicationEvents1Minimize(Sender: TObject);
|
||||
begin
|
||||
MainForm.MinimizeIt;
|
||||
end;
|
||||
|
||||
function GenerateName: string;
|
||||
const
|
||||
KParts: array [0..2] of string = (
|
||||
'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',
|
||||
'b|ck|d|g|k|m|n|p|t|v|x|z');
|
||||
var
|
||||
i: Integer;
|
||||
|
||||
function Pick(s: string): string;
|
||||
var
|
||||
count, i: Integer;
|
||||
begin
|
||||
count := 1;
|
||||
for i := 0 to Length(s)-1 do
|
||||
if s[i] = '|' then Inc(count);
|
||||
Result := Split(s, Random(count));
|
||||
end;
|
||||
begin
|
||||
for i := 0 to 5 do
|
||||
Result := Result + Pick(KParts[i mod 3]);
|
||||
Result := UpperCase(Copy(Result,1,1)) + Copy(Result,2,Length(Result));
|
||||
end;
|
||||
|
||||
procedure TNewGuyForm.GenClick(Sender: TObject);
|
||||
begin
|
||||
Name.Text := GenerateName;
|
||||
end;
|
||||
|
||||
procedure TNewGuyForm.FormActivate(Sender: TObject);
|
||||
begin
|
||||
if Name.Text = '' then begin
|
||||
GenClick(Sender);
|
||||
Name.SetFocus;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
ProgressQuest v6.2(probably pre-release)
|
||||
[contents of readme]
|
||||
ProgressQuest v6.2 (probably as released)
|
||||
-----------------------------------------
|
||||
This directory represents an ex post facto rendering of pq6 in its
|
||||
various versions in svn, so that changes will be trackable thataway.
|
||||
|
||||
The version as of this moment in svn is 6.2, but this is probably not
|
||||
the final 6.2. That will come in the next checkin.
|
||||
The version as of this moment in svn is 6.2 (but I had two copies
|
||||
around, so I'm not positive this is the final one, and not the previous
|
||||
rev checked in)
|
||||
|
||||
(I didn't add this file in PQ 6.0, but after that you can use this README
|
||||
to trace the checkin history using svn.)
|
||||
BIN
Binary file not shown.
@@ -8,27 +8,62 @@ uses
|
||||
type
|
||||
EWebError = class(Exception);
|
||||
|
||||
function DownloadString(const Url: string): string;
|
||||
function DownloadString(url: String): String;
|
||||
|
||||
var
|
||||
// Change to false to insist on no proxy
|
||||
ProxyOK: Boolean;
|
||||
|
||||
implementation
|
||||
|
||||
function DownloadString(const Url: string): string;
|
||||
{
|
||||
function OpenAuthUrl(net: HInternet; url, username, password: String): HInternet;
|
||||
var
|
||||
connection: HInternet;
|
||||
begin
|
||||
connection := InternetConnect(net, host, port, nil, nil,
|
||||
INTERNET_SERVICE_HTTP, 0, 0);
|
||||
Result := HttpOpenRequest(Connection, "GET", path,
|
||||
nil, nil, nil,
|
||||
// INTERNET_FLAG_KEEP_CONNECTION or
|
||||
INTERNET_FLAG_RELOAD or
|
||||
INTERNET_FLAG_PRAGMA_NOCACHE or
|
||||
INTERNET_FLAG_NO_UI, 0);
|
||||
InternetSetOption(result, INTERNET_OPTION_USERNAME,
|
||||
PChar(username), len(username));
|
||||
InternetSetOption(result, INTERNET_OPTION_PASSWORD,
|
||||
PChar(password), len(password));
|
||||
|
||||
HttpSendRequest(result, nil, 0, nil, 0);
|
||||
//HttpQueryInfo(Resource, HTTP_QUERY_FLAG_NUMBER |
|
||||
// HTTP_QUERY_STATUS_CODE, &dwStatus, &dwStatusSize, NULL);
|
||||
end;
|
||||
}
|
||||
|
||||
function DownloadString(url: string): string;
|
||||
var
|
||||
NetHandle: HINTERNET;
|
||||
UrlHandle: HINTERNET;
|
||||
Buffer: array[0..1024] of Char;
|
||||
BytesRead: dWord;
|
||||
conntype: DWORD;
|
||||
begin
|
||||
Result := '';
|
||||
NetHandle := InternetOpen('PQ6.2', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
|
||||
conntype := INTERNET_OPEN_TYPE_DIRECT;
|
||||
if proxyok then conntype := INTERNET_OPEN_TYPE_PRECONFIG;
|
||||
NetHandle := InternetOpen('PQ6.2', conntype, nil, nil, 0);
|
||||
if Assigned(NetHandle) then
|
||||
begin
|
||||
UrlHandle := InternetOpenUrl(NetHandle, PChar(Url),
|
||||
nil, 0, // headers
|
||||
INTERNET_FLAG_RELOAD or
|
||||
INTERNET_FLAG_PRAGMA_NOCACHE or
|
||||
INTERNET_FLAG_NO_UI,
|
||||
0);
|
||||
begin {
|
||||
if Len(username + password) > 0 then
|
||||
UrlHandle := OpenAuthUrl(NetHandle, username, password)
|
||||
else }
|
||||
UrlHandle := InternetOpenUrl(NetHandle, PChar(Url),
|
||||
nil, 0, // headers[size]
|
||||
INTERNET_FLAG_KEEP_CONNECTION or
|
||||
INTERNET_FLAG_RELOAD or
|
||||
INTERNET_FLAG_PRAGMA_NOCACHE or
|
||||
INTERNET_FLAG_NO_UI,
|
||||
0);
|
||||
if Assigned(UrlHandle) then begin
|
||||
repeat
|
||||
InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer)-1, BytesRead);
|
||||
@@ -46,4 +81,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
ProxyOK := True;
|
||||
end.
|
||||
|
||||
Vendored
Vendored
+129
@@ -0,0 +1,129 @@
|
||||
<html>
|
||||
<body bgcolor=#ffffd0>
|
||||
<font color=#404000>
|
||||
<h1><font color=#e02000>P</font>rogress <font color=#e02000>Q</font>uest</h1>
|
||||
<font color=#404000>
|
||||
<a href=http://progressquest.com/>http://progressquest.com/</a>
|
||||
|
||||
<h3> Back story </h3>
|
||||
|
||||
Since time before time the Vorlak had held the Crosshutch at Thraeskamp.
|
||||
The ancient reckoning held that the Five Skrelkampi (and their Truebine) would
|
||||
return when the great Trond-feast could be held anew and the Belnap reunited.
|
||||
But this legend became lost to all but the Papperboxen at Horbug.
|
||||
One of their own was Yallow the Speldrig, who found an unlikely pupil in
|
||||
Torbole Understeady, the discarded illigitimate waif of Wainthane Topknox,
|
||||
whom Yallow renamed Grumdrig and began to school as a boar-pulmet's apprentice. ...And, as it
|
||||
was said by some, in aberdoxy.
|
||||
<p>
|
||||
As our story opens young Grumdrig has returned to Horbug following a trying stint in
|
||||
Spilwaer Spond where his laconic disposition and fertile mind bred a series
|
||||
of misadventures which had landed him outside the good graces of the Jordref there,
|
||||
Welham, who had secretly begun a long term course of slow but
|
||||
disaccomodating illpeel in the lad's morning fanwael.
|
||||
Meanwhile, though scarce a tuft of <i>mansefur</i> had yet made its appearance
|
||||
on the boy's <i>manssach</i>, a number of visiting Roilwachhs have begun to
|
||||
exhibit a discreet
|
||||
and seemingly inexplicable interest in the boy. Strange indeed, as he would not reach
|
||||
his krouchensterm for another harvest or more.
|
||||
And when Grumdrig's resiliant compatriot Paedri
|
||||
appears at Grumdrig's lochnotat with a Scrolstamp from the old Speldrig,
|
||||
a woozy foreboding feeling rises from his young gut...
|
||||
|
||||
<h3> Introduction </h3>
|
||||
|
||||
<b>Progress Quest</b> is a next generation computer role-playing game.
|
||||
Gamers who have played modern online role-playing games,
|
||||
or almost any computer role-playing game,
|
||||
or who have at any time installed or upgraded their operating system, will find themselves
|
||||
incredibly comfortable with <b>Progress Quest</b>'s very familiar gameplay.
|
||||
<b>Progress Quest</b> follows reverently in the footsteps of recent smash hit
|
||||
online worlds, but is careful to streamline the more tedious aspects of those
|
||||
offerings. Players will still have the satisfaction of building their character
|
||||
from a ninety-pound level 1 teenager, to an incredibly puissant, magically imbued warrior,
|
||||
well able to snuff out the lives of a barnload of bugbears
|
||||
without need of so much as a lunch break. Yet, gone are the tedious micromanagement
|
||||
and other frustrations common to that older generation of RPG's.
|
||||
|
||||
<h3> User manual </h3>
|
||||
|
||||
Even inexperienced gamers will find <b>Progress Quest</b>
|
||||
remarkably intutive and simple to play. Start the program
|
||||
and click the <code>New Game (Single Player)</code> button,
|
||||
or click <code>New Game (Multiplayer)</code> and select a Realm to
|
||||
compete against players from all over the world.
|
||||
You will then be presented with the character creation screen.
|
||||
|
||||
Select a name, race and class for the new character. Then, use the <code>Roll</code> button
|
||||
until you are statisfied with the stats
|
||||
for your character. <i>Tip: You can use the <code>Unroll</code> button (a feature exclusive to <b>Progress Quest</b>)
|
||||
to go back to any previous roll if you find that you've
|
||||
clicked too hastily.</i>
|
||||
<p>
|
||||
If you choose to play an online game, your character will share adventures with other <b>Progress
|
||||
Quest</b> characters in an online virtual world. Online play requires
|
||||
internet connectivity, though sophisiticated algorithms
|
||||
keep the bandwidth usage to a minimum. You can compare your character against
|
||||
the top <b>Progress Quest</b> players by visiting
|
||||
<a href=http://progressquest.com/realms.php>http://progressquest.com/realms.php</a>
|
||||
(or hit <Ctrl>-<B> from within the game).
|
||||
<p>
|
||||
Finally, hit the <code>Sold!</code> button to begin the game. The game will start immediately and
|
||||
you can safely familiarize yourself with the game's single interface screen as the game progresses
|
||||
on its own.
|
||||
Soon your avatar will will be seeking and destroying an exotic panopoly of beasts while you
|
||||
gaze proudly on. Missing, you will notice, is the tedious march from town, the bewildering maze of cookie cutter
|
||||
streets hiding some specific merchant or NPC,
|
||||
and the repetetive hunt for just the right beast to execute. <b>Progress Quest</b> supplies
|
||||
your character with an endless series of victims, as well as exciting quests which keep your quest
|
||||
log full to the brim at all times.
|
||||
<p>
|
||||
TREASURE: Each slain creature yields a trophy, which can be sold in any town.
|
||||
When the encumbrance bar reaches maximum, your character automatically returns to the nearest town
|
||||
to sell your loot. If sufficiently liquid, he may then purchase an upgrade in equpiment (weapon or armor).
|
||||
That being done, the interpid adventurer then returns to the frontier to spill more blood.
|
||||
<i>Tip: The amount your character can carry before his encumbrance bar fills up
|
||||
increases as his STR stat improves.</i>
|
||||
<p>
|
||||
QUESTS: When a quest is complete, your character is rewarded with one of:
|
||||
a) a special, valuable, treasure item,
|
||||
b) an improved weapon or piece of armor,
|
||||
c) a boost in stats, or
|
||||
d) a new spell for his spellbook. The character is then assigned
|
||||
a follow-up quest, which he immediately begins to make progress on.
|
||||
<p>
|
||||
EXPERIENCE AND LEVELING UP: Experience represents your character's knowledge about the world
|
||||
around him, as well as his battle prowess and ability to channel the forces of magical power.
|
||||
Your character gains experience by killing monsters and sentient beings,
|
||||
over and over again. Once the experience bar is full, your character levels up, and is
|
||||
given an automatic boost in several of his stats and a new spell for his spellbook.
|
||||
<p>
|
||||
DYING: Be warned that your character can be slain by monsters which are tougher than
|
||||
he can handle. However, this concept
|
||||
has been abstracted out of the game and takes effect simply by somewhat reducing the experience
|
||||
accumulated for each successful murder.
|
||||
<p>
|
||||
SAVING YOUR PROGRESS: Your game is saved whenever you quit, as well as each time your character levels
|
||||
up or completes a quest. You can pick up where you left off by restarting <b>Progress Quest</b> and clicking the <code>Load Game</code>
|
||||
button. <b>Progress Quest</b> makes a backup of your existing save file each time it saves anew, so
|
||||
if your save file becomes corrupted, load the backup, and lament the progress that must now be regained.
|
||||
|
||||
<h3> Game controls </h3>
|
||||
|
||||
<b>Progress Quest</b> belongs to a new breed of "fire and forget" RPG's. There is no need to interact
|
||||
with <b>Progress Quest</b> at all; it will make progress with you or without you.
|
||||
<p>
|
||||
You can quit <b>Progress Quest</b> by using the window close box, or by hitting <Alt>-<F4>
|
||||
(hold down the <Alt> key while hitting <F4>), but there is really little need to ever do so.
|
||||
Please note that your character will <i>not</i> make any progress <i>except when <b>Progress Quest</b> is
|
||||
running</i>. Your character will make <i>no</i> progress once you quit the program, until you start
|
||||
<b>Progress Quest</b> again.
|
||||
|
||||
<h3> Keyboard quick reference </h3>
|
||||
|
||||
<table border=1 cellspacing=5><th>Key</th><th>Description</tr>
|
||||
<tr><td>Alt-F4<td>Exit <b>Progress Quest</b></table>
|
||||
|
||||
<p>
|
||||
<small>©:Copyright 2003
|
||||
<a href=mailto:grumdrig@progressquest.com>grumdrig@progressquest.com</a>
|
||||
Vendored
BIN
Binary file not shown.
@@ -51,7 +51,7 @@ Conditionals=
|
||||
DebugSourceDirs=
|
||||
UsePackages=0
|
||||
[Parameters]
|
||||
RunParams=-export "Cokie [oobag].pq"
|
||||
RunParams=
|
||||
HostApplication=
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
|
||||
Binary file not shown.
+17
-24
@@ -1,44 +1,37 @@
|
||||
Cookie [Oobag]
|
||||
Half Halfling Puma Burgular
|
||||
Level 2 (exp. 180/1279)
|
||||
Level 3 (exp. 44/1291)
|
||||
|
||||
Plot stage: Act I (5 hours remaining)
|
||||
Quest: Deliver this trinket (38% complete)
|
||||
Quest: Exterminate the Unicorns (93% complete)
|
||||
|
||||
Stats:
|
||||
STR 12
|
||||
CON 9
|
||||
DEX 6
|
||||
INT 13
|
||||
WIS 12 HP Max 11
|
||||
CHA 11 MP Max 12
|
||||
INT 14
|
||||
WIS 13 HP Max 19
|
||||
CHA 11 MP Max 19
|
||||
|
||||
Equipment:
|
||||
Shield +1 Pie Plate
|
||||
Helm Lace
|
||||
Hauberk -2 Warped Dented Bearskin
|
||||
Brassairts +1 Lace
|
||||
Helm Macrame
|
||||
Hauberk -1 Canvas
|
||||
Brassairts Mildewed Rusty Pleathers
|
||||
Vambraces Cracked Patched Pleathers
|
||||
Gauntlets Lace
|
||||
Gambeson Lace
|
||||
Greaves -1 Macrame
|
||||
Sollerets -1 Burlap
|
||||
|
||||
Spell Book:
|
||||
Hastiness II
|
||||
Slime Finger I
|
||||
Hastiness III
|
||||
Slime Finger III
|
||||
Sadness I
|
||||
Rabbit Punch I
|
||||
|
||||
Inventory (17/22 cubits):
|
||||
15 gold pieces
|
||||
a quasit tail
|
||||
a sea hag wart
|
||||
a bunny ear
|
||||
an uruk boot
|
||||
a catoblepas neck
|
||||
a piercer tip
|
||||
a wolf paw
|
||||
5 yellow mold spores
|
||||
2 nixie webbings
|
||||
a goblin ear
|
||||
a leprechaun wallet
|
||||
Inventory (1/22 cubits):
|
||||
6 gold pieces
|
||||
|
||||
-- 4/12/2003 1:21:40 PM
|
||||
-- 9/5/2003 12:22:01 AM
|
||||
-- Progress Quest 6.2 - http://progressquest.com/
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user