From 61d82c5b46881ecf3e486a1c36e94a0f21baef9a Mon Sep 17 00:00:00 2001 From: 4aiman Date: Wed, 24 Jan 2024 18:36:29 +0300 Subject: [PATCH] made app resizeable/stretchy; added Spoils manager --- mmbn5m.lpi | 8 ++++ mmbn5m.lps | 84 ++++++++++++++++++--------------- mmbn5m.res | Bin 6188 -> 12252 bytes rooms.ini | 10 ++++ unit1.lfm | 134 +++++++++++++++++++++++++++++++++++++++++++++-------- unit1.pas | 105 ++++++++++++++++++++++++++++++++++++++--- 6 files changed, 276 insertions(+), 65 deletions(-) diff --git a/mmbn5m.lpi b/mmbn5m.lpi index 9a369f9..de35cc9 100644 --- a/mmbn5m.lpi +++ b/mmbn5m.lpi @@ -14,6 +14,14 @@ + + + + + + + + diff --git a/mmbn5m.lps b/mmbn5m.lps index 2e5377d..425fa01 100644 --- a/mmbn5m.lps +++ b/mmbn5m.lps @@ -9,7 +9,7 @@ - + @@ -46,9 +46,9 @@ - + - + @@ -59,141 +59,149 @@ - - - + + + - + - + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/mmbn5m.res b/mmbn5m.res index 09ecee63a0c38f17109aa74700689c17380da8e6..994e6c659defd01479e5bdf3de11810e422600a5 100644 GIT binary patch literal 12252 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 literal 6188 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 L_+JBafPMZKXEqY! diff --git a/rooms.ini b/rooms.ini index 55cbdc4..d43216c 100644 --- a/rooms.ini +++ b/rooms.ini @@ -78,3 +78,13 @@ 3982=Squirrel Comp 16 1536=Higsby's 1422=Squirrel Comp 6 +397=Crane Comp +141=Elevator Room +1025=Mission Control +3=Dock + +[Spoils] +397=RegUP2,1000z +141=HolyPanl*,RegUP1 +401=Vulcan2 C,HP Memory +145=Quake1 A,Snake M diff --git a/unit1.lfm b/unit1.lfm index a020d58..8c10ea0 100644 --- a/unit1.lfm +++ b/unit1.lfm @@ -1,64 +1,158 @@ object Form1: TForm1 - Left = 802 + Left = 1033 Height = 448 - Top = 496 + Top = 463 Width = 528 - BorderStyle = bsSingle Caption = 'MMBN5M' ClientHeight = 448 ClientWidth = 528 Font.CharSet = ANSI_CHARSET Font.Height = -16 - Font.Pitch = fpVariable + Font.Name = 'Liberation Mono' + Font.Pitch = fpFixed Font.Quality = fqDraft OnCreate = FormCreate OnDestroy = FormDestroy + Position = poScreenCenter LCLVersion = '2.2.6.0' object room_name_label: TLabel - Left = 120 - Height = 21 + AnchorSideLeft.Control = start_stop_button + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Owner + Left = 136 + Height = 18 Top = 8 - Width = 157 - Caption = 'Room #0: Lan''s Room ' + Width = 320 + BorderSpacing.Left = 8 + BorderSpacing.Top = 8 + Caption = 'Run the game, then press "Start"' Color = clGradientInactiveCaption - Font.CharSet = ANSI_CHARSET - Font.Height = -16 - Font.Pitch = fpFixed - Font.Quality = fqCleartype ParentColor = False - ParentFont = False Transparent = False end object map_image: TImage - Left = 120 - Height = 400 - Top = 40 - Width = 400 + AnchorSideLeft.Control = room_name_label + AnchorSideTop.Control = room_name_label + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom + Left = 136 + Height = 406 + Top = 34 + Width = 384 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Top = 8 + BorderSpacing.Right = 8 + BorderSpacing.Bottom = 8 Center = True OnPaint = map_imagePaint Proportional = True Stretch = True end object start_stop_button: TSpeedButton + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner Left = 8 Height = 30 Top = 8 - Width = 100 + Width = 120 AllowAllUp = True + BorderSpacing.Left = 8 + BorderSpacing.Top = 8 Caption = 'Start' GroupIndex = 1 Transparent = False OnClick = start_stop_buttonClick end object edit_room_button: TButton + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = start_stop_button + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = map_image Left = 8 Height = 30 - Top = 40 - Width = 100 + Top = 46 + Width = 120 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 8 + BorderSpacing.Top = 8 + BorderSpacing.Right = 8 Caption = 'Edit Room' OnClick = edit_room_buttonClick TabOrder = 0 end + object spoils_listbox: TListBox + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = spoils_label + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = map_image + AnchorSideBottom.Control = plus_spoil + Left = 8 + Height = 250 + Top = 110 + Width = 120 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 8 + BorderSpacing.Top = 8 + BorderSpacing.Right = 8 + BorderSpacing.Bottom = 8 + BorderStyle = bsNone + Color = clGradientInactiveCaption + ItemHeight = 0 + OnDblClick = spoils_listboxDblClick + TabOrder = 1 + end + object spoils_label: TLabel + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = edit_room_button + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = map_image + Left = 8 + Height = 18 + Top = 84 + Width = 120 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 8 + BorderSpacing.Top = 8 + BorderSpacing.Right = 8 + Caption = 'Spoils:' + ParentColor = False + end + object plus_spoil: TButton + AnchorSideLeft.Control = Owner + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom + Left = 8 + Height = 40 + Top = 400 + Width = 56 + Anchors = [akLeft, akBottom] + BorderSpacing.Left = 8 + BorderSpacing.Bottom = 8 + Caption = '+' + OnClick = plus_spoilClick + TabOrder = 2 + end + object minus_spoil1: TButton + AnchorSideLeft.Control = plus_spoil + AnchorSideLeft.Side = asrBottom + AnchorSideRight.Control = map_image + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom + Left = 72 + Height = 40 + Top = 400 + Width = 56 + Anchors = [akLeft, akRight, akBottom] + BorderSpacing.Left = 8 + BorderSpacing.Right = 8 + BorderSpacing.Bottom = 8 + Caption = '-' + OnClick = minus_spoil1Click + TabOrder = 3 + end object Timer1: TTimer Enabled = False OnTimer = Timer1Timer diff --git a/unit1.pas b/unit1.pas index ec7e20b..ce4618c 100644 --- a/unit1.pas +++ b/unit1.pas @@ -6,14 +6,18 @@ interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, - Buttons, IniFiles; + Buttons, Grids, IniFiles; type { TForm1 } TForm1 = class(TForm) + plus_spoil: TButton; edit_room_button: TButton; + minus_spoil1: TButton; + spoils_label: TLabel; + spoils_listbox: TListBox; map_image: TImage; room_name_label: TLabel; start_stop_button: TSpeedButton; @@ -22,6 +26,9 @@ type procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure map_imagePaint(Sender: TObject); + procedure minus_spoil1Click(Sender: TObject); + procedure plus_spoilClick(Sender: TObject); + procedure spoils_listboxDblClick(Sender: TObject); procedure start_stop_buttonClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); private @@ -104,6 +111,8 @@ var last_room: smallint = -1; room_name: string; new_room: bool; + spoils_list: string; + spoils: TStringArray; {$R *.lfm} @@ -114,6 +123,7 @@ begin // open ini file and create a list to hold processes ROOMS := TIniFile.Create('rooms.ini'); process_list := TStringList.Create(); + spoils_listbox.Height := 0; end; procedure TForm1.FormDestroy(Sender: TObject); @@ -131,8 +141,79 @@ end; procedure TForm1.map_imagePaint(Sender: TObject); begin - map_image.Canvas.Brush.Style := bsClear; - map_image.Canvas.Rectangle(0, 0, 400, 400); + //map_image.Canvas.Brush.Style := bsClear; + //map_image.Canvas.Rectangle(0, 0, 400, 400); +end; + +procedure TForm1.minus_spoil1Click(Sender: TObject); +var + Txt: string; + i: integer; +begin + if (spoils_listbox.ItemIndex > -1) then + begin + spoils_listbox.Items.Delete(spoils_listbox.ItemIndex); + for i := 0 to spoils_listbox.Items.Count - 1 do + begin + if i < spoils_listbox.Items.Count - 1 then + Txt := Txt + spoils_listbox.Items[i] + ',' + else + Txt := Txt + spoils_listbox.Items[i]; + end; + ROOMS.WriteString('Spoils', IntToStr(room), Txt); + end; + spoils_listbox.ClearSelection; +end; + +procedure TForm1.plus_spoilClick(Sender: TObject); +var + new_spoil_name: string; +var + Txt: string; + i: integer; +begin + if InputQuery('Adding item to Room #' + IntToStr(room), 'Enter item''s name', + new_spoil_name) then + begin + spoils_listbox.Items.Add(new_spoil_name); + for i := 0 to spoils_listbox.Items.Count - 1 do + begin + if i < spoils_listbox.Items.Count - 1 then + Txt := Txt + spoils_listbox.Items[i] + ',' + else + Txt := Txt + spoils_listbox.Items[i]; + end; + ROOMS.WriteString('Spoils', IntToStr(room), Txt); + end; + spoils_listbox.ClearSelection; +end; + +procedure TForm1.spoils_listboxDblClick(Sender: TObject); +var + new_spoil_name: string; +var + Txt: string; + i: integer; +begin + if (spoils_listbox.ItemIndex > -1) then + begin + new_spoil_name := spoils_listbox.Items[spoils_listbox.ItemIndex]; + if InputQuery('Editing item in Room #' + IntToStr(room), + 'Enter item''s name', new_spoil_name) then + begin + spoils_listbox.Items[spoils_listbox.ItemIndex] := new_spoil_name; + for i := 0 to spoils_listbox.Items.Count - 1 do + begin + if i < spoils_listbox.Items.Count - 1 then + Txt := Txt + spoils_listbox.Items[i] + ',' + else + Txt := Txt + spoils_listbox.Items[i]; + end; + ROOMS.WriteString('Spoils', IntToStr(room), Txt); + + end; + end; + spoils_listbox.ClearSelection; end; procedure TForm1.start_stop_buttonClick(Sender: TObject); @@ -168,6 +249,8 @@ end; procedure TForm1.Timer1Timer(Sender: TObject); begin + spoils_listbox.Height := spoils_listbox.Items.Count * spoils_listbox.ItemHeight; + if hProcess <> 0 then begin @@ -176,10 +259,18 @@ begin begin if (last_room <> room) or (new_room) then begin - new_room := false; + new_room := False; last_room := room; room_name := ROOMS.ReadString('Rooms', IntToStr(room), 'Unknown'); room_name_label.Caption := 'Room #' + IntToStr(room) + ': ' + room_name; + spoils_list := ROOMS.ReadString('Spoils', IntToStr(room), ''); + spoils_listbox.Items.Clear; + if (spoils_list <> '') then + begin + spoils := spoils_list.Split(','); + spoils_listbox.Items.AddStrings(spoils); + end; + if FileExists('images/' + room_name + '.png') then begin map_image.Picture.LoadFromFile('images/' + room_name + '.png'); @@ -192,11 +283,11 @@ begin end else begin - room_name_label.Caption := 'error'; + room_name_label.Caption := 'Error. Make sure the game is running'; end; except on edit_room_button: Exception do - room_name_label.Caption := 'error'; + room_name_label.Caption := 'Error'; end; end; @@ -211,7 +302,7 @@ begin new_room_name) then begin ROOMS.WriteString('Rooms', IntToStr(room), new_room_name); - new_room := true; + new_room := True; end; end;