diff --git a/Config.dcu b/Config.dcu index 818cb8c..048a69b 100644 Binary files a/Config.dcu and b/Config.dcu differ diff --git a/Config.dfm b/Config.dfm index 7a00cae..16be2dd 100644 --- a/Config.dfm +++ b/Config.dfm @@ -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 diff --git a/Config.pas b/Config.pas index 1b69a27..10e555d 100644 --- a/Config.pas +++ b/Config.pas @@ -37,10 +37,6 @@ type Label13: TLabel; DefenseBad: TMemo; Label14: TLabel; - private - { Private declarations } - public - { Public declarations } end; var diff --git a/DelphiZLib.zip b/DelphiZLib.zip new file mode 100644 index 0000000..7f0c7d2 Binary files /dev/null and b/DelphiZLib.zip differ diff --git a/Front.dcu b/Front.dcu index 8a4880f..773900c 100644 Binary files a/Front.dcu and b/Front.dcu differ diff --git a/Front.dfm b/Front.dfm index 4c49f4f..4b8ea0f 100644 --- a/Front.dfm +++ b/Front.dfm @@ -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 diff --git a/Info.dcu b/Info.dcu index 321d001..1408dbc 100644 Binary files a/Info.dcu and b/Info.dcu differ diff --git a/Login.dcu b/Login.dcu index b667be0..1fc976b 100644 Binary files a/Login.dcu and b/Login.dcu differ diff --git a/Main.dcu b/Main.dcu index 6ae7f51..42e2013 100644 Binary files a/Main.dcu and b/Main.dcu differ diff --git a/Main.dfm b/Main.dfm index 8600e66..052044b 100644 --- a/Main.dfm +++ b/Main.dfm @@ -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 diff --git a/Main.pas b/Main.pas index 4e660d3..4f4ee56 100644 --- a/Main.pas +++ b/Main.pas @@ -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; diff --git a/NewGuy.dcu b/NewGuy.dcu index feb4553..fef7283 100644 Binary files a/NewGuy.dcu and b/NewGuy.dcu differ diff --git a/NewGuy.dfm b/NewGuy.dfm index 4a93460..28116a9 100644 --- a/NewGuy.dfm +++ b/NewGuy.dfm @@ -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 diff --git a/NewGuy.pas b/NewGuy.pas index ce3d297..9a361d5 100644 --- a/NewGuy.pas +++ b/NewGuy.pas @@ -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. diff --git a/README b/README index c55df73..e2b3e10 100644 --- a/README +++ b/README @@ -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.) \ No newline at end of file diff --git a/SelServ.dcu b/SelServ.dcu index 7e74f31..fccb7ba 100644 Binary files a/SelServ.dcu and b/SelServ.dcu differ diff --git a/Web.dcu b/Web.dcu index 1f163ea..09a590d 100644 Binary files a/Web.dcu and b/Web.dcu differ diff --git a/Web.pas b/Web.pas index b139324..cf33b39 100644 --- a/Web.pas +++ b/Web.pas @@ -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. diff --git a/license.txt b/dist/license.txt similarity index 100% rename from license.txt rename to dist/license.txt diff --git a/dist/pq.html b/dist/pq.html new file mode 100644 index 0000000..307cb56 --- /dev/null +++ b/dist/pq.html @@ -0,0 +1,129 @@ + +
+ ++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 mansefur had yet made its appearance +on the boy's manssach, 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... + +
New Game (Single Player) button,
+or click New Game (Multiplayer) 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 Roll button
+until you are statisfied with the stats
+for your character. Tip: You can use the Unroll button (a feature exclusive to Progress Quest)
+to go back to any previous roll if you find that you've
+clicked too hastily.
++If you choose to play an online game, your character will share adventures with other Progress +Quest 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 Progress Quest players by visiting +http://progressquest.com/realms.php +(or hit <Ctrl>-<B> from within the game). +
+Finally, hit the Sold! 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. Progress Quest 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.
+
+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. +Tip: The amount your character can carry before his encumbrance bar fills up +increases as his STR stat improves. +
+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. +
+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. +
+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. +
+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 Progress Quest and clicking the Load Game
+button. Progress Quest 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.
+
+
+You can quit Progress Quest 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 not make any progress except when Progress Quest is +running. Your character will make no progress once you quit the program, until you start +Progress Quest again. + +
| Key | Description + |
|---|---|
| Alt-F4 | Exit Progress Quest |
+©:Copyright 2003 +grumdrig@progressquest.com diff --git a/dist/pq6-2beta1.zip b/dist/pq6-2beta1.zip new file mode 100644 index 0000000..9c2b2eb Binary files /dev/null and b/dist/pq6-2beta1.zip differ diff --git a/pq.dof b/pq.dof index e42565c..eaa0c05 100644 --- a/pq.dof +++ b/pq.dof @@ -51,7 +51,7 @@ Conditionals= DebugSourceDirs= UsePackages=0 [Parameters] -RunParams=-export "Cokie [oobag].pq" +RunParams= HostApplication= Launcher= UseLauncher=0 diff --git a/saves/Cokie [Oobag].pq b/saves/Cokie [Oobag].pq index 38678aa..d734a72 100644 Binary files a/saves/Cokie [Oobag].pq and b/saves/Cokie [Oobag].pq differ diff --git a/saves/Cokie [Oobag].sheet b/saves/Cokie [Oobag].sheet index eeb283a..5461425 100644 --- a/saves/Cokie [Oobag].sheet +++ b/saves/Cokie [Oobag].sheet @@ -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/ diff --git a/saves/Cokie [oobag].pq b/saves/Cokie [oobag].pq new file mode 100644 index 0000000..d734a72 Binary files /dev/null and b/saves/Cokie [oobag].pq differ diff --git a/saves/Frogrox [Oobag].pq b/saves/Frogrox [Oobag].pq new file mode 100644 index 0000000..b5411e5 Binary files /dev/null and b/saves/Frogrox [Oobag].pq differ diff --git a/saves/Whakcrood [Spoltog].pq b/saves/Whakcrood [Spoltog].pq new file mode 100644 index 0000000..911154e Binary files /dev/null and b/saves/Whakcrood [Spoltog].pq differ