ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/OniTrainer/current/Unit14.pas
Revision: 251
Committed: Thu Dec 6 22:29:52 2007 UTC (17 years, 10 months ago) by alloc
Content type: text/x-pascal
File size: 2530 byte(s)
Log Message:

File Contents

# Content
1 UNIT Unit14;
2 INTERFACE
3 USES
4 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
5 Dialogs, StdCtrls, ExtCtrls, ComCtrls, StrUtils;
6 TYPE
7 TForm14 = Class(TForm)
8 Label1: TLabel;
9 Label2: TLabel;
10 edit_char: TEdit;
11 list: TListBox;
12 updown: TUpDown;
13 tim_lvlcheck: TTimer;
14 PROCEDURE updownClick(Sender: TObject; Button: TUDBtnType);
15 PROCEDURE FormCloseQuery(Sender: TObject; var CanClose: Boolean);
16 PROCEDURE tim_lvlcheckTimer(Sender: TObject);
17 PROCEDURE listClick(Sender: TObject);
18 PRIVATE
19 { Private declarations }
20 PUBLIC
21 { Public declarations }
22 END;
23
24 VAR
25 Form14: TForm14;
26
27 IMPLEMENTATION
28 USES Unit1, Unit2, Unit8;
29 {$R *.dfm}
30 VAR lvl_shown:Byte;
31 modelcount:Byte;
32
33 FUNCTION patch_loader_loaded:Boolean;
34 CONST check_for:LongWord=$0010656EE9;
35 address_at:LongWord=$4228ED;
36 BEGIN
37 IF Decode_Int(ReadMem(address_at,4))=check_for THEN result:=True
38 ELSE result:=False;
39 END;
40
41 PROCEDURE TForm14.listClick(Sender: TObject);
42 VAR model:LongWord;
43 struct1:LongWord;
44 BEGIN
45 IF _connected AND (lvlnumber>0) AND patch_loader_loaded THEN BEGIN
46 model:=Decode_Int(ReadMem($10F20+Form14.list.ItemIndex*4,4));
47 struct1:=Decode_Int(ReadMem(PointerStruct1PointerArray1,4));
48 struct1:=Decode_Int(ReadMem(struct1+4*StrToInt(Form14.edit_char.Text),4));
49 WriteMem(struct1+$00C,4,Encode_Int(model));
50 END ELSE BEGIN
51 IF _connected AND (lvlnumber>0) THEN BEGIN
52 MessageBox(Form14.Handle,PChar('Oni.exe is not patched.'),PChar('Error'),MB_OK);
53 END;
54 END;
55 END;
56
57 PROCEDURE TForm14.tim_lvlcheckTimer(Sender: TObject);
58 VAR i:Byte;
59 BEGIN
60 IF _connected AND (lvlnumber>0) AND patch_loader_loaded THEN BEGIN
61 IF lvl_shown<>lvlnumber THEN BEGIN
62 list.Items.Clear;
63 modelcount:=Decode_Int(ReadMem($10F05,1));
64 FOR i:=0 TO modelcount-1 DO BEGIN
65 list.Items.Add('Model'+IntToStr(i+1)+' ('+IntToHex(Decode_Int(ReadMem($10F20+i*4,4)),8)+')');
66 END;
67 lvl_shown:=lvlnumber;
68 END;
69 END ELSE BEGIN
70 list.Items.Clear;
71 lvl_shown:=0;
72 END;
73 END;
74
75 PROCEDURE TForm14.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
76 BEGIN
77 Self.Visible:=False;
78 CanClose:=False;
79 Form1.menu_Models.Checked:=False;
80 END;
81
82 PROCEDURE TForm14.updownClick(Sender: TObject; Button: TUDBtnType);
83 BEGIN
84 Form14.edit_char.Text:=IntToStr(updown.Position);
85 END;
86
87 END.