mirror of
https://git.do.srb2.org/STJr/SOCEdit.git
synced 2024-11-14 00:10:54 +00:00
1895 lines
58 KiB
Text
1895 lines
58 KiB
Text
VERSION 5.00
|
|
Begin VB.Form frmThingEdit
|
|
Caption = "Thing Edit"
|
|
ClientHeight = 5745
|
|
ClientLeft = 60
|
|
ClientTop = 345
|
|
ClientWidth = 11880
|
|
Icon = "Things.frx":0000
|
|
LinkTopic = "Form1"
|
|
MaxButton = 0 'False
|
|
ScaleHeight = 5745
|
|
ScaleWidth = 11880
|
|
StartUpPosition = 3 'Windows Default
|
|
Begin VB.CommandButton cmdCopy
|
|
Caption = "&Copy Thing"
|
|
Height = 615
|
|
Left = 6600
|
|
TabIndex = 77
|
|
Top = 4920
|
|
Width = 975
|
|
End
|
|
Begin VB.CommandButton cmdLoadDefault
|
|
Caption = "&Load Code Default"
|
|
Height = 615
|
|
Left = 4440
|
|
Style = 1 'Graphical
|
|
TabIndex = 76
|
|
Top = 4920
|
|
Width = 975
|
|
End
|
|
Begin VB.CommandButton cmdDelete
|
|
Caption = "&Delete Thing from SOC"
|
|
Height = 615
|
|
Left = 3240
|
|
Style = 1 'Graphical
|
|
TabIndex = 74
|
|
Top = 4920
|
|
Width = 1095
|
|
End
|
|
Begin VB.CommandButton cmdSave
|
|
Caption = "&Save"
|
|
Height = 615
|
|
Left = 5520
|
|
TabIndex = 73
|
|
Top = 4920
|
|
Width = 975
|
|
End
|
|
Begin VB.Frame frmFlags
|
|
Caption = "Flags"
|
|
Height = 3735
|
|
Left = 7680
|
|
TabIndex = 45
|
|
Top = 1920
|
|
Width = 4095
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_FIRE"
|
|
Height = 255
|
|
Index = 26
|
|
Left = 2040
|
|
TabIndex = 72
|
|
Tag = "4194304"
|
|
ToolTipText = "Fire object. Doesn't harm if you have red shield."
|
|
Top = 2160
|
|
Width = 1695
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_NOCLIPTHING"
|
|
Height = 255
|
|
Index = 25
|
|
Left = 2040
|
|
TabIndex = 71
|
|
Tag = "1073741824"
|
|
ToolTipText = "Don't be blocked by things (partial clipping)"
|
|
Top = 3120
|
|
Width = 1815
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_SCENERY"
|
|
Height = 255
|
|
Index = 24
|
|
Left = 2040
|
|
TabIndex = 70
|
|
Tag = "33554432"
|
|
ToolTipText = "Scenery (uses scenery thinker). Uses less CPU than a standard object, but generally can't move, etc."
|
|
Top = 2880
|
|
Width = 1455
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_ENEMY"
|
|
Height = 255
|
|
Index = 23
|
|
Left = 2040
|
|
TabIndex = 69
|
|
Tag = "16777216"
|
|
ToolTipText = "This mobj is an enemy!"
|
|
Top = 2640
|
|
Width = 1335
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_COUNTITEM"
|
|
Height = 255
|
|
Index = 22
|
|
Left = 2040
|
|
TabIndex = 68
|
|
Tag = "8388608"
|
|
ToolTipText = "On picking up, count this item object towards intermission item total."
|
|
Top = 2400
|
|
Width = 1695
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_NOTHINK"
|
|
Height = 255
|
|
Index = 21
|
|
Left = 2040
|
|
TabIndex = 67
|
|
Tag = "2097152"
|
|
ToolTipText = "Don't run this thing's thinker."
|
|
Top = 1920
|
|
Width = 1695
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_MONITOR"
|
|
Height = 255
|
|
Index = 20
|
|
Left = 2040
|
|
TabIndex = 66
|
|
Tag = "1048576"
|
|
ToolTipText = "Item box"
|
|
Top = 1680
|
|
Width = 1575
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_HIRES"
|
|
Height = 255
|
|
Index = 19
|
|
Left = 2040
|
|
TabIndex = 65
|
|
Tag = "524288"
|
|
ToolTipText = "Object uses a high-resolution sprite"
|
|
Top = 1440
|
|
Width = 1215
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_BOUNCE"
|
|
Height = 255
|
|
Index = 18
|
|
Left = 2040
|
|
TabIndex = 64
|
|
Tag = "262144"
|
|
ToolTipText = "Bounce off walls and things."
|
|
Top = 1200
|
|
Width = 1335
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_SPRING"
|
|
Height = 255
|
|
Index = 17
|
|
Left = 2040
|
|
TabIndex = 63
|
|
Tag = "131072"
|
|
ToolTipText = "Item is a spring."
|
|
Top = 960
|
|
Width = 1575
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_MISSILE"
|
|
Height = 255
|
|
Index = 16
|
|
Left = 2040
|
|
TabIndex = 62
|
|
Tag = "65536"
|
|
ToolTipText = "Any kind of projectile currently flying through the air, waiting to hit something"
|
|
Top = 720
|
|
Width = 1335
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_BOXICON"
|
|
Height = 255
|
|
Index = 15
|
|
Left = 2040
|
|
TabIndex = 61
|
|
Tag = "32768"
|
|
ToolTipText = "Monitor powerup icon. These rise a bit."
|
|
Top = 480
|
|
Width = 1815
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_FLOAT"
|
|
Height = 255
|
|
Index = 14
|
|
Left = 2040
|
|
TabIndex = 60
|
|
Tag = "16384"
|
|
ToolTipText = "Allow moves to any height, no gravity. For active floaters."
|
|
Top = 240
|
|
Width = 1215
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_SPECIALFLAGS"
|
|
Height = 255
|
|
Index = 13
|
|
Left = 120
|
|
TabIndex = 59
|
|
Tag = "8192"
|
|
ToolTipText = "This object does not adhere to regular flag/z properties for object placing."
|
|
Top = 3360
|
|
Width = 1815
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_NOCLIP"
|
|
Height = 255
|
|
Index = 12
|
|
Left = 120
|
|
TabIndex = 58
|
|
Tag = "4096"
|
|
ToolTipText = "Don't clip against objects, walls, etc."
|
|
Top = 3120
|
|
Width = 1335
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_SLIDEME"
|
|
Height = 255
|
|
Index = 11
|
|
Left = 120
|
|
TabIndex = 57
|
|
Tag = "2048"
|
|
ToolTipText = "Slide this object when it hits a wall."
|
|
Top = 2880
|
|
Width = 1335
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_AMBIENT"
|
|
Height = 255
|
|
Index = 10
|
|
Left = 120
|
|
TabIndex = 56
|
|
Tag = "1024"
|
|
ToolTipText = "This object is an ambient sound."
|
|
Top = 2640
|
|
Width = 1695
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_NOGRAVITY"
|
|
Height = 255
|
|
Index = 9
|
|
Left = 120
|
|
TabIndex = 55
|
|
Tag = "512"
|
|
ToolTipText = "Don't apply gravity"
|
|
Top = 2400
|
|
Width = 1695
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_SPAWNCEILING"
|
|
Height = 255
|
|
Index = 8
|
|
Left = 120
|
|
TabIndex = 54
|
|
Tag = "256"
|
|
ToolTipText = "On level spawning (initial position), hang from ceiling instead of stand on floor."
|
|
Top = 2160
|
|
Width = 1935
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_BOSS"
|
|
Height = 255
|
|
Index = 7
|
|
Left = 120
|
|
TabIndex = 53
|
|
Tag = "128"
|
|
ToolTipText = "Object is a boss."
|
|
Top = 1920
|
|
Width = 1575
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_PUSHABLE"
|
|
Height = 255
|
|
Index = 6
|
|
Left = 120
|
|
TabIndex = 52
|
|
Tag = "64"
|
|
ToolTipText = "You can push this object. It can activate switches and things by pushing it on top."
|
|
Top = 1680
|
|
Width = 1575
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_AMBUSH"
|
|
Height = 255
|
|
Index = 5
|
|
Left = 120
|
|
TabIndex = 51
|
|
Tag = "32"
|
|
ToolTipText = "Special attributes"
|
|
Top = 1440
|
|
Width = 1455
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_NOBLOCKMAP"
|
|
Height = 255
|
|
Index = 4
|
|
Left = 120
|
|
TabIndex = 50
|
|
Tag = "16"
|
|
ToolTipText = "Don't use the blocklinks (inert but displayable)"
|
|
Top = 1200
|
|
Width = 1815
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_NOSECTOR"
|
|
Height = 255
|
|
Index = 3
|
|
Left = 120
|
|
TabIndex = 49
|
|
Tag = "8"
|
|
ToolTipText = "Don't use the sector links (invisible but touchable)."
|
|
Top = 960
|
|
Width = 1575
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_SHOOTABLE"
|
|
Height = 255
|
|
Index = 2
|
|
Left = 120
|
|
TabIndex = 48
|
|
Tag = "4"
|
|
ToolTipText = "Can be hit."
|
|
Top = 720
|
|
Width = 1695
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_SOLID"
|
|
Height = 255
|
|
Index = 1
|
|
Left = 120
|
|
TabIndex = 47
|
|
Tag = "2"
|
|
ToolTipText = "Blocks."
|
|
Top = 480
|
|
Width = 1335
|
|
End
|
|
Begin VB.CheckBox chkFlags
|
|
Caption = "MF_SPECIAL"
|
|
Height = 255
|
|
Index = 0
|
|
Left = 120
|
|
TabIndex = 46
|
|
Tag = "1"
|
|
ToolTipText = "Call P_TouchSpecialThing when touched."
|
|
Top = 240
|
|
Width = 1455
|
|
End
|
|
End
|
|
Begin VB.ComboBox cmbRaisestate
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 43
|
|
Text = "cmbRaisestate"
|
|
Top = 4440
|
|
Width = 3300
|
|
End
|
|
Begin VB.ComboBox cmbActivesound
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 41
|
|
Text = "cmbActivesound"
|
|
Top = 4080
|
|
Width = 3300
|
|
End
|
|
Begin VB.TextBox txtDamage
|
|
Height = 285
|
|
Left = 10680
|
|
TabIndex = 39
|
|
Text = "0"
|
|
Top = 1200
|
|
Width = 1095
|
|
End
|
|
Begin VB.TextBox txtMass
|
|
Height = 285
|
|
Left = 10680
|
|
TabIndex = 37
|
|
Text = "0"
|
|
Top = 840
|
|
Width = 1095
|
|
End
|
|
Begin VB.TextBox txtHeight
|
|
Height = 285
|
|
Left = 10680
|
|
TabIndex = 35
|
|
Text = "0"
|
|
Top = 480
|
|
Width = 1095
|
|
End
|
|
Begin VB.TextBox txtRadius
|
|
Height = 285
|
|
Left = 10680
|
|
TabIndex = 33
|
|
Text = "0"
|
|
Top = 120
|
|
Width = 1095
|
|
End
|
|
Begin VB.TextBox txtSpeed
|
|
Height = 285
|
|
Left = 8760
|
|
TabIndex = 31
|
|
Text = "0"
|
|
Top = 1560
|
|
Width = 1095
|
|
End
|
|
Begin VB.ComboBox cmbDeathsound
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 29
|
|
Text = "cmbDeathsound"
|
|
Top = 3720
|
|
Width = 3300
|
|
End
|
|
Begin VB.ComboBox cmbXdeathstate
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 27
|
|
Text = "cmbXdeathstate"
|
|
Top = 3360
|
|
Width = 3300
|
|
End
|
|
Begin VB.ComboBox cmbDeathstate
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 25
|
|
Text = "cmbDeathstate"
|
|
Top = 3000
|
|
Width = 3300
|
|
End
|
|
Begin VB.ComboBox cmbMissilestate
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 23
|
|
Text = "cmbMissilestate"
|
|
Top = 2640
|
|
Width = 3300
|
|
End
|
|
Begin VB.ComboBox cmbMeleestate
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 21
|
|
Text = "cmbMeleestate"
|
|
Top = 2280
|
|
Width = 3300
|
|
End
|
|
Begin VB.ComboBox cmbPainsound
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 19
|
|
Text = "cmbPainsound"
|
|
Top = 1920
|
|
Width = 3300
|
|
End
|
|
Begin VB.TextBox txtPainchance
|
|
Height = 285
|
|
Left = 8760
|
|
TabIndex = 17
|
|
Text = "0"
|
|
Top = 1200
|
|
Width = 1095
|
|
End
|
|
Begin VB.ComboBox cmbPainstate
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 15
|
|
Text = "cmbPainstate"
|
|
Top = 1560
|
|
Width = 3300
|
|
End
|
|
Begin VB.ComboBox cmbAttacksound
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 13
|
|
Text = "cmbAttacksound"
|
|
Top = 1200
|
|
Width = 3300
|
|
End
|
|
Begin VB.TextBox txtReactiontime
|
|
Height = 285
|
|
Left = 8760
|
|
TabIndex = 11
|
|
Text = "0"
|
|
Top = 840
|
|
Width = 1095
|
|
End
|
|
Begin VB.ComboBox cmbSeesound
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 9
|
|
Text = "cmbSeesound"
|
|
Top = 840
|
|
Width = 3300
|
|
End
|
|
Begin VB.ComboBox cmbSeestate
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 7
|
|
Text = "cmbSeestate"
|
|
Top = 480
|
|
Width = 3300
|
|
End
|
|
Begin VB.TextBox txtSpawnhealth
|
|
Height = 285
|
|
Left = 8760
|
|
TabIndex = 6
|
|
Text = "0"
|
|
Top = 480
|
|
Width = 1095
|
|
End
|
|
Begin VB.ComboBox cmbSpawnstate
|
|
Height = 315
|
|
Left = 4320
|
|
TabIndex = 3
|
|
Text = "cmbSpawnstate"
|
|
Top = 120
|
|
Width = 3300
|
|
End
|
|
Begin VB.TextBox txtDoomednum
|
|
Height = 285
|
|
Left = 8760
|
|
TabIndex = 1
|
|
Text = "0"
|
|
Top = 120
|
|
Width = 1095
|
|
End
|
|
Begin VB.ListBox lstThings
|
|
Height = 5520
|
|
ItemData = "Things.frx":0442
|
|
Left = 120
|
|
List = "Things.frx":0444
|
|
TabIndex = 0
|
|
Top = 120
|
|
Width = 3015
|
|
End
|
|
Begin VB.Label lblStatusInfo
|
|
Alignment = 2 'Center
|
|
Caption = "Idle"
|
|
BeginProperty Font
|
|
Name = "MS Sans Serif"
|
|
Size = 8.25
|
|
Charset = 0
|
|
Weight = 700
|
|
Underline = 0 'False
|
|
Italic = 0 'False
|
|
Strikethrough = 0 'False
|
|
EndProperty
|
|
Height = 375
|
|
Left = 9960
|
|
TabIndex = 75
|
|
Top = 1560
|
|
Width = 1815
|
|
End
|
|
Begin VB.Label lblRaisestate
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Raisestate:"
|
|
Height = 255
|
|
Left = 3360
|
|
TabIndex = 44
|
|
Top = 4440
|
|
Width = 855
|
|
End
|
|
Begin VB.Label lblActivesound
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Activesound:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 42
|
|
Top = 4080
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblDamage
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Damage:"
|
|
Height = 255
|
|
Left = 9840
|
|
TabIndex = 40
|
|
Top = 1200
|
|
Width = 735
|
|
End
|
|
Begin VB.Label lblMass
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Mass:"
|
|
Height = 255
|
|
Left = 9960
|
|
TabIndex = 38
|
|
Top = 840
|
|
Width = 615
|
|
End
|
|
Begin VB.Label lblHeight
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Height:"
|
|
Height = 255
|
|
Left = 9960
|
|
TabIndex = 36
|
|
Top = 480
|
|
Width = 615
|
|
End
|
|
Begin VB.Label lblRadius
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Radius:"
|
|
Height = 255
|
|
Left = 9960
|
|
TabIndex = 34
|
|
Top = 120
|
|
Width = 615
|
|
End
|
|
Begin VB.Label lblSpeed
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Speed:"
|
|
Height = 255
|
|
Left = 7680
|
|
TabIndex = 32
|
|
Top = 1560
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblDeathsound
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Deathsound:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 30
|
|
Top = 3720
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblXdeathstate
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Xdeathstate:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 28
|
|
Top = 3360
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblDeathstate
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Deathstate:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 26
|
|
Top = 3000
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblMissilestate
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Missilestate:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 24
|
|
Top = 2640
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblMeleestate
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Meleestate:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 22
|
|
Top = 2280
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblPainsound
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Painsound:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 20
|
|
Top = 1920
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblPainchance
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Painchance:"
|
|
Height = 255
|
|
Left = 7680
|
|
TabIndex = 18
|
|
Top = 1200
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblPainstate
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Painstate:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 16
|
|
Top = 1560
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblAttacksound
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Attacksound:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 14
|
|
Top = 1200
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblReactiontime
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Reactiontime:"
|
|
Height = 255
|
|
Left = 7680
|
|
TabIndex = 12
|
|
Top = 840
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblSeesound
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Seesound:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 10
|
|
Top = 840
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblSeestate
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Seestate:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 8
|
|
Top = 480
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblSpawnhealth
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Spawnhealth:"
|
|
Height = 255
|
|
Left = 7680
|
|
TabIndex = 5
|
|
Top = 480
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblSpawnstate
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Spawnstate:"
|
|
Height = 255
|
|
Left = 3240
|
|
TabIndex = 4
|
|
Top = 120
|
|
Width = 975
|
|
End
|
|
Begin VB.Label lblDoomednum
|
|
Alignment = 1 'Right Justify
|
|
Caption = "Thing Map #:"
|
|
Height = 255
|
|
Left = 7680
|
|
TabIndex = 2
|
|
Top = 120
|
|
Width = 975
|
|
End
|
|
End
|
|
Attribute VB_Name = "frmThingEdit"
|
|
Attribute VB_GlobalNameSpace = False
|
|
Attribute VB_Creatable = False
|
|
Attribute VB_PredeclaredId = True
|
|
Attribute VB_Exposed = False
|
|
Option Explicit
|
|
|
|
Private Sub cmdCopy_Click()
|
|
Dim Response As String
|
|
|
|
Response$ = InputBox("Copy state to #:", "Copy State")
|
|
|
|
If Response = "" Then Exit Sub
|
|
|
|
Response = TrimComplete(Response)
|
|
|
|
Call WriteThing(False, Val(Response))
|
|
|
|
MsgBox "Thing copied to #" & Val(Response)
|
|
End Sub
|
|
|
|
Private Sub cmdDelete_Click()
|
|
Call WriteThing(True, lstThings.ListIndex)
|
|
End Sub
|
|
|
|
Private Sub cmdLoadDefault_Click()
|
|
Call ClearForm
|
|
If InStr(lstThings.List(lstThings.ListIndex), "MT_FREESLOT") = 0 Then
|
|
LoadObjectInfo (lstThings.ListIndex)
|
|
Else
|
|
MsgBox "Free slots do not have a code default."
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub cmdSave_Click()
|
|
Call WriteThing(False, lstThings.ListIndex)
|
|
End Sub
|
|
|
|
Private Sub Form_Load()
|
|
Call Reload
|
|
End Sub
|
|
|
|
Private Sub ClearForm()
|
|
Dim i As Integer
|
|
cmbSpawnstate.Text = ""
|
|
cmbSeestate.Text = ""
|
|
cmbSeesound.Text = ""
|
|
cmbAttacksound.Text = ""
|
|
cmbPainstate.Text = ""
|
|
cmbPainsound.Text = ""
|
|
cmbMeleestate.Text = ""
|
|
cmbMissilestate.Text = ""
|
|
cmbDeathstate.Text = ""
|
|
cmbXdeathstate.Text = ""
|
|
cmbDeathsound.Text = ""
|
|
cmbActivesound.Text = ""
|
|
cmbRaisestate.Text = ""
|
|
txtDoomednum.Text = ""
|
|
txtSpawnhealth.Text = ""
|
|
txtReactiontime.Text = ""
|
|
txtPainchance.Text = ""
|
|
txtSpeed.Text = ""
|
|
txtRadius.Text = ""
|
|
txtHeight.Text = ""
|
|
txtMass.Text = ""
|
|
txtDamage.Text = ""
|
|
|
|
For i = 0 To 26
|
|
chkFlags(i).Value = 0
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub Reload()
|
|
lblStatusInfo.Caption = "Loading Sounds Info..."
|
|
DoEvents
|
|
LoadSounds
|
|
lblStatusInfo.Caption = "Loading Things Info..."
|
|
DoEvents
|
|
LoadThings
|
|
lblStatusInfo.Caption = "Loading States Info..."
|
|
DoEvents
|
|
LoadStates
|
|
lblStatusInfo.Caption = "Idle"
|
|
lstThings.ListIndex = 0
|
|
End Sub
|
|
|
|
Private Sub LoadSounds()
|
|
Dim myFSO As New Scripting.FileSystemObject
|
|
Dim ts As TextStream
|
|
Dim line As String
|
|
Dim number As Integer
|
|
Dim startclip As Integer, endclip As Integer
|
|
Dim addstring As String
|
|
Dim i As Integer, numfreeslots As Integer
|
|
|
|
ChDir SourcePath
|
|
Set ts = myFSO.OpenTextFile("sounds.h", ForReading, False)
|
|
|
|
Do While InStr(ts.ReadLine, "List of sounds (don't modify this comment!)") = 0
|
|
Loop
|
|
|
|
ts.SkipLine ' typedef enum
|
|
ts.SkipLine ' {
|
|
|
|
line = ts.ReadLine
|
|
number = 0
|
|
|
|
cmbSeesound.Clear
|
|
cmbAttacksound.Clear
|
|
cmbPainsound.Clear
|
|
cmbDeathsound.Clear
|
|
cmbActivesound.Clear
|
|
|
|
Do While InStr(line, "sfx_freeslot0") = 0
|
|
startclip = InStr(line, "sfx_")
|
|
If InStr(line, "sfx_") <> 0 Then
|
|
endclip = InStr(line, ",")
|
|
line = Mid(line, startclip, endclip - startclip)
|
|
addstring = number & " - " & line
|
|
cmbSeesound.AddItem addstring
|
|
cmbAttacksound.AddItem addstring
|
|
cmbPainsound.AddItem addstring
|
|
cmbDeathsound.AddItem addstring
|
|
cmbActivesound.AddItem addstring
|
|
number = number + 1
|
|
End If
|
|
line = ts.ReadLine
|
|
Loop
|
|
|
|
ts.Close
|
|
Set myFSO = Nothing
|
|
|
|
'Populate the free slots!
|
|
numfreeslots = 800
|
|
|
|
For i = 1 To numfreeslots
|
|
If i < 10 Then
|
|
addstring = number & " - " & "sfx_fre00" & i & " (free slot)"
|
|
ElseIf i < 100 Then
|
|
addstring = number & " - " & "sfx_fre0" & i & " (free slot)"
|
|
Else
|
|
addstring = number & " - " & "sfx_fre" & i & " (free slot)"
|
|
End If
|
|
cmbSeesound.AddItem addstring
|
|
cmbAttacksound.AddItem addstring
|
|
cmbPainsound.AddItem addstring
|
|
cmbDeathsound.AddItem addstring
|
|
cmbActivesound.AddItem addstring
|
|
number = number + 1
|
|
Next
|
|
End Sub
|
|
Private Sub LoadStates()
|
|
Dim myFSO As New Scripting.FileSystemObject
|
|
Dim ts As TextStream
|
|
Dim line As String
|
|
Dim number As Integer
|
|
Dim startclip As Integer, endclip As Integer
|
|
Dim addstring As String
|
|
Dim i As Integer
|
|
Dim numfreeslots As Integer
|
|
|
|
ChDir SourcePath
|
|
Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
|
|
|
|
Do While InStr(ts.ReadLine, "Object states (don't modify this comment!)") = 0
|
|
Loop
|
|
|
|
ts.SkipLine ' typedef enum
|
|
ts.SkipLine ' {
|
|
|
|
line = ts.ReadLine
|
|
number = 0
|
|
|
|
cmbSpawnstate.Clear
|
|
cmbSeestate.Clear
|
|
cmbPainstate.Clear
|
|
cmbMeleestate.Clear
|
|
cmbMissilestate.Clear
|
|
cmbDeathstate.Clear
|
|
cmbXdeathstate.Clear
|
|
cmbRaisestate.Clear
|
|
|
|
Do While InStr(line, "S_FIRSTFREESLOT") = 0
|
|
startclip = InStr(line, "S_")
|
|
If InStr(line, "S_") <> 0 Then
|
|
endclip = InStr(line, ",")
|
|
line = Mid(line, startclip, endclip - startclip)
|
|
addstring = number & " - " & line
|
|
cmbSpawnstate.AddItem addstring
|
|
cmbSeestate.AddItem addstring
|
|
cmbPainstate.AddItem addstring
|
|
cmbMeleestate.AddItem addstring
|
|
cmbMissilestate.AddItem addstring
|
|
cmbDeathstate.AddItem addstring
|
|
cmbXdeathstate.AddItem addstring
|
|
cmbRaisestate.AddItem addstring
|
|
number = number + 1
|
|
End If
|
|
line = ts.ReadLine
|
|
Loop
|
|
|
|
ts.Close
|
|
|
|
'Populate the free slots!
|
|
Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "#define NUMMOBJFREESLOTS") = 0
|
|
line = ts.ReadLine
|
|
Loop
|
|
|
|
startclip = InStr(line, "SLOTS ") + 6
|
|
numfreeslots = Val(Mid(line, startclip, Len(line) - startclip + 1)) * 6
|
|
|
|
For i = 1 To numfreeslots
|
|
addstring = number & " - " & "S_FREESLOT" & i
|
|
cmbSpawnstate.AddItem addstring
|
|
cmbSeestate.AddItem addstring
|
|
cmbPainstate.AddItem addstring
|
|
cmbMeleestate.AddItem addstring
|
|
cmbMissilestate.AddItem addstring
|
|
cmbDeathstate.AddItem addstring
|
|
cmbXdeathstate.AddItem addstring
|
|
cmbRaisestate.AddItem addstring
|
|
number = number + 1
|
|
Next
|
|
|
|
ts.Close
|
|
Set myFSO = Nothing
|
|
End Sub
|
|
|
|
Private Sub LoadThings()
|
|
Dim myFSO As New Scripting.FileSystemObject
|
|
Dim ts As TextStream
|
|
Dim line As String
|
|
Dim number As Integer
|
|
Dim startclip As Integer, endclip As Integer
|
|
Dim numfreeslots As Integer, i As Integer
|
|
|
|
ChDir SourcePath
|
|
Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
|
|
|
|
Do While InStr(ts.ReadLine, "Little flag for SOC editor (don't change this comment!)") = 0
|
|
Loop
|
|
|
|
ts.SkipLine ' typedef enum
|
|
ts.SkipLine ' {
|
|
|
|
line = ts.ReadLine
|
|
number = 0
|
|
|
|
lstThings.Clear
|
|
|
|
Do While InStr(line, "MT_FIRSTFREESLOT") = 0
|
|
startclip = InStr(line, "MT_")
|
|
If InStr(line, "MT_") <> 0 Then
|
|
endclip = InStr(line, ",")
|
|
line = Mid(line, startclip, endclip - startclip)
|
|
lstThings.AddItem number & " - " & line
|
|
number = number + 1
|
|
End If
|
|
line = ts.ReadLine
|
|
Loop
|
|
|
|
ts.Close
|
|
|
|
'Populate the free slots!
|
|
Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "#define NUMMOBJFREESLOTS") = 0
|
|
line = ts.ReadLine
|
|
Loop
|
|
|
|
startclip = InStr(line, "SLOTS ") + 6
|
|
numfreeslots = Val(Mid(line, startclip, Len(line) - startclip + 1))
|
|
|
|
For i = 1 To numfreeslots
|
|
lstThings.AddItem number & " - " & "MT_FREESLOT" & i
|
|
number = number + 1
|
|
Next
|
|
|
|
ts.Close
|
|
Set myFSO = Nothing
|
|
End Sub
|
|
|
|
Private Sub LoadObjectInfo(ThingNum As Integer)
|
|
Dim myFSO As New Scripting.FileSystemObject
|
|
Dim ts As TextStream
|
|
Dim line As String
|
|
Dim number As Integer
|
|
Dim startclip As Integer, endclip As Integer
|
|
|
|
ChDir SourcePath
|
|
Set ts = myFSO.OpenTextFile("info.c", ForReading, False)
|
|
|
|
Do While InStr(ts.ReadLine, "mobjinfo[NUMMOBJTYPES] =") = 0
|
|
Loop
|
|
|
|
number = 0
|
|
|
|
Do While number <> ThingNum
|
|
Do While InStr(ts.ReadLine, "}") = 0
|
|
Loop
|
|
number = number + 1
|
|
Loop
|
|
|
|
Do While InStr(line, "doomednum") = 0
|
|
line = ts.ReadLine
|
|
Loop
|
|
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
'Check for *FRACUNIT values
|
|
endclip = InStr(line, "*FRACUNIT")
|
|
If endclip <> 0 Then
|
|
line = Left(line, endclip - 1)
|
|
line = Val(line) * 65536
|
|
End If
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
line = FindThingNum(line) & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
line = FindPowerNum(line) & " - " & line
|
|
End If
|
|
txtDoomednum.Text = line
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "spawnstate") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbSpawnstate, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbSpawnstate.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbSpawnstate.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "spawnhealth") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
'Check for *FRACUNIT values
|
|
endclip = InStr(line, "*FRACUNIT")
|
|
If endclip <> 0 Then
|
|
line = Left(line, endclip - 1)
|
|
line = Val(line) * 65536
|
|
End If
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
line = FindThingNum(line) & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
line = FindPowerNum(line) & " - " & line
|
|
End If
|
|
txtSpawnhealth.Text = line
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "seestate") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbSeestate, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbSeestate.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbSeestate.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "seesound") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbSeesound, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbSeesound.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbSeesound.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "reactiontime") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
'Check for *FRACUNIT values
|
|
endclip = InStr(line, "*FRACUNIT")
|
|
If endclip <> 0 Then
|
|
line = Left(line, endclip - 1)
|
|
line = Val(line) * 65536
|
|
End If
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
line = FindThingNum(line) & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
line = FindPowerNum(line) & " - " & line
|
|
End If
|
|
txtReactiontime.Text = line
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "attacksound") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbAttacksound, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbAttacksound.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbAttacksound.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "painstate") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbPainstate, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbPainstate.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbPainstate.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "painchance") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
'Check for *FRACUNIT values
|
|
endclip = InStr(line, "*FRACUNIT")
|
|
If endclip <> 0 Then
|
|
line = Left(line, endclip - 1)
|
|
line = Val(line) * 65536
|
|
End If
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
line = FindThingNum(line) & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
line = FindPowerNum(line) & " - " & line
|
|
End If
|
|
txtPainchance.Text = line
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "painsound") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbPainsound, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbPainsound.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbPainsound.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "meleestate") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbMeleestate, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbMeleestate.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbMeleestate.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "missilestate") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbMissilestate, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbMissilestate.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbMissilestate.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "deathstate") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbDeathstate, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbDeathstate.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbDeathstate.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "xdeathstate") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbXdeathstate, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbXdeathstate.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbXdeathstate.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "deathsound") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbDeathsound, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbDeathsound.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbDeathsound.Text = number & " - " & line
|
|
End If
|
|
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "speed") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
'Check for *FRACUNIT values
|
|
endclip = InStr(line, "*FRACUNIT")
|
|
If endclip <> 0 Then
|
|
line = Left(line, endclip - 1)
|
|
line = Val(line) * 65536
|
|
End If
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
line = FindThingNum(line) & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
line = FindPowerNum(line) & " - " & line
|
|
End If
|
|
txtSpeed.Text = line
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "radius") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
'Check for *FRACUNIT values
|
|
endclip = InStr(line, "*FRACUNIT")
|
|
If endclip <> 0 Then
|
|
line = Left(line, endclip - 1)
|
|
line = Val(line) * 65536
|
|
End If
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
line = FindThingNum(line) & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
line = FindPowerNum(line) & " - " & line
|
|
End If
|
|
txtRadius.Text = line
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "height") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
'Check for *FRACUNIT values
|
|
endclip = InStr(line, "*FRACUNIT")
|
|
If endclip <> 0 Then
|
|
line = Left(line, endclip - 1)
|
|
line = Val(line) * 65536
|
|
End If
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
line = FindThingNum(line) & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
line = FindPowerNum(line) & " - " & line
|
|
End If
|
|
txtHeight.Text = line
|
|
|
|
line = ts.ReadLine 'Display order offset (add support, please!)
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "mass") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
'Check for *FRACUNIT values
|
|
endclip = InStr(line, "*FRACUNIT")
|
|
If endclip <> 0 Then
|
|
line = Left(line, endclip - 1)
|
|
line = Val(line) * 65536
|
|
End If
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
line = FindThingNum(line) & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
line = FindPowerNum(line) & " - " & line
|
|
End If
|
|
txtMass.Text = line
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "damage") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
'Check for *FRACUNIT values
|
|
endclip = InStr(line, "*FRACUNIT")
|
|
If endclip <> 0 Then
|
|
line = Left(line, endclip - 1)
|
|
line = Val(line) * 65536
|
|
End If
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
line = FindThingNum(line) & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
line = FindPowerNum(line) & " - " & line
|
|
End If
|
|
txtDamage.Text = line
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "activesound") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbActivesound, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbActivesound.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbActivesound.Text = number & " - " & line
|
|
End If
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "flags") = 0
|
|
Loop
|
|
endclip = InStr(line, ",")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
ProcessFlags (line)
|
|
|
|
line = ts.ReadLine
|
|
Do While InStr(line, "raisestate") = 0
|
|
Loop
|
|
endclip = InStr(line, "//")
|
|
line = Left(line, endclip - 1)
|
|
line = TrimComplete(line)
|
|
Call FindComboIndex(cmbRaisestate, line)
|
|
'Check for crazy-odd MT_ usage
|
|
endclip = InStr(line, "MT_")
|
|
If endclip <> 0 Then
|
|
number = FindThingNum(line)
|
|
cmbRaisestate.Text = number & " - " & line
|
|
End If
|
|
'Check for crazy-odd pw_ usage
|
|
endclip = InStr(line, "pw_")
|
|
If endclip <> 0 Then
|
|
number = FindPowerNum(line)
|
|
cmbRaisestate.Text = number & " - " & line
|
|
End If
|
|
|
|
ts.Close
|
|
Set myFSO = Nothing
|
|
End Sub
|
|
|
|
Private Sub ProcessFlags(flags As String)
|
|
Dim FlagList(32) As String
|
|
Dim endpoint As Integer
|
|
Dim ListCount As Integer
|
|
Dim FlagString As String
|
|
Dim myFSO As New Scripting.FileSystemObject
|
|
Dim ts As TextStream
|
|
Dim line As String
|
|
Dim j As Integer, i As Integer
|
|
Dim number As Long
|
|
Dim startclip As Integer, endclip As Integer
|
|
|
|
For j = 0 To 26
|
|
chkFlags(j).Value = 0
|
|
Next j
|
|
|
|
FlagString = flags
|
|
|
|
flags = flags & "||"
|
|
|
|
ListCount = 0
|
|
|
|
Do While Len(flags) > 3
|
|
endpoint = InStr(flags, "|")
|
|
FlagString = Left(flags, endpoint - 1)
|
|
flags = Right(flags, Len(flags) - endpoint)
|
|
FlagList(ListCount) = FlagString
|
|
ListCount = ListCount + 1
|
|
Loop
|
|
|
|
ChDir SourcePath
|
|
|
|
For i = 0 To ListCount - 1
|
|
Set ts = myFSO.OpenTextFile("p_mobj.h", ForReading, False)
|
|
|
|
line = ts.ReadLine
|
|
|
|
Do While Not ts.AtEndOfStream
|
|
line = ts.ReadLine
|
|
If InStr(line, FlagList(i)) Then
|
|
If InStr(line, "//") = 0 Or (InStr(line, "//") > InStr(line, FlagList(i))) Then
|
|
Exit Do
|
|
End If
|
|
End If
|
|
Loop
|
|
|
|
If InStr(line, FlagList(i)) Then
|
|
startclip = InStr(line, "0x")
|
|
endclip = InStr(line, ",")
|
|
line = Mid(line, startclip + 2, endclip - 1)
|
|
line = "&H" & line
|
|
TrimComplete (line)
|
|
line = Left(line, Len(line) - 1)
|
|
number = CLng(line)
|
|
|
|
For j = 0 To 26
|
|
If chkFlags(j).Tag = number Then
|
|
chkFlags(j).Value = 1
|
|
End If
|
|
Next j
|
|
End If
|
|
ts.Close
|
|
Next i
|
|
|
|
Set myFSO = Nothing
|
|
End Sub
|
|
|
|
Private Sub FindComboIndex(ByRef Box As ComboBox, line As String)
|
|
Dim i As Integer
|
|
|
|
For i = 0 To Box.ListCount
|
|
If InStr(Box.List(i), line) Then
|
|
Box.ListIndex = i
|
|
Exit For
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub lstThings_Click()
|
|
lblStatusInfo.Caption = "Loading thing info..."
|
|
DoEvents
|
|
Call ClearForm
|
|
If InStr(lstThings.List(lstThings.ListIndex), "MT_FREESLOT") = 0 Then
|
|
LoadObjectInfo (lstThings.ListIndex)
|
|
End If
|
|
LoadSOCObjectInfo (lstThings.ListIndex)
|
|
lblStatusInfo.Caption = "Idle"
|
|
End Sub
|
|
|
|
Private Sub LoadSOCObjectInfo(ThingNum As Integer)
|
|
Dim myFSO As New Scripting.FileSystemObject
|
|
Dim ts As TextStream
|
|
Dim line As String
|
|
Dim word As String
|
|
Dim word2 As String
|
|
Dim j As Integer
|
|
Dim temp As Long
|
|
|
|
Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
|
|
|
|
SOCLoad:
|
|
Do While Not ts.AtEndOfStream
|
|
line = ts.ReadLine
|
|
|
|
If Left(line, 1) = "#" Then GoTo SOCLoad
|
|
|
|
If Left(line, 1) = vbCrLf Then GoTo SOCLoad
|
|
|
|
If Len(line) < 1 Then GoTo SOCLoad
|
|
|
|
word = FirstToken(line)
|
|
word2 = SecondToken(line)
|
|
|
|
If UCase(word) = "THING" And Val(word2) = ThingNum Then
|
|
Do While Len(line) > 0 And Not ts.AtEndOfStream
|
|
line = ts.ReadLine
|
|
word = UCase(FirstToken(line))
|
|
word2 = UCase(SecondTokenEqual(line))
|
|
|
|
If word = "MAPTHINGNUM" Then
|
|
txtDoomednum.Text = Val(word2)
|
|
ElseIf word = "SPAWNSTATE" Then
|
|
cmbSpawnstate.ListIndex = Val(word2)
|
|
ElseIf word = "SPAWNHEALTH" Then
|
|
txtSpawnhealth.Text = Val(word2)
|
|
ElseIf word = "SEESTATE" Then
|
|
cmbSeestate.ListIndex = Val(word2)
|
|
ElseIf word = "SEESOUND" Then
|
|
cmbSeesound.ListIndex = Val(word2)
|
|
ElseIf word = "REACTIONTIME" Then
|
|
txtReactiontime.Text = Val(word2)
|
|
ElseIf word = "ATTACKSOUND" Then
|
|
cmbAttacksound.ListIndex = Val(word2)
|
|
ElseIf word = "PAINSTATE" Then
|
|
cmbPainstate.ListIndex = Val(word2)
|
|
ElseIf word = "PAINCHANCE" Then
|
|
txtPainchance.Text = Val(word2)
|
|
ElseIf word = "PAINSOUND" Then
|
|
cmbPainsound.ListIndex = Val(word2)
|
|
ElseIf word = "MELEESTATE" Then
|
|
cmbMeleestate.ListIndex = Val(word2)
|
|
ElseIf word = "MISSILESTATE" Then
|
|
cmbMissilestate.ListIndex = Val(word2)
|
|
ElseIf word = "DEATHSTATE" Then
|
|
cmbDeathstate.ListIndex = Val(word2)
|
|
ElseIf word = "DEATHSOUND" Then
|
|
cmbDeathsound.ListIndex = Val(word2)
|
|
ElseIf word = "XDEATHSTATE" Then
|
|
cmbXdeathstate.ListIndex = Val(word2)
|
|
ElseIf word = "SPEED" Then
|
|
txtSpeed.Text = Val(word2)
|
|
ElseIf word = "RADIUS" Then
|
|
txtRadius.Text = Val(word2)
|
|
ElseIf word = "HEIGHT" Then
|
|
txtHeight.Text = Val(word2)
|
|
ElseIf word = "MASS" Then
|
|
txtMass.Text = Val(word2)
|
|
ElseIf word = "DAMAGE" Then
|
|
txtDamage.Text = Val(word2)
|
|
ElseIf word = "ACTIVESOUND" Then
|
|
cmbActivesound.ListIndex = Val(word2)
|
|
ElseIf word = "FLAGS" Then
|
|
For j = 0 To 26
|
|
temp = Val(word2)
|
|
If temp And chkFlags(j).Tag Then
|
|
chkFlags(j).Value = 1
|
|
Else
|
|
chkFlags(j).Value = 0
|
|
End If
|
|
Next j
|
|
ElseIf word = "RAISESTATE" Then
|
|
cmbRaisestate.ListIndex = Val(word2)
|
|
ElseIf Len(line) > 0 And Left(line, 1) <> "#" Then
|
|
MsgBox "Error in SOC!" & vbCrLf & "Unknown line: " & line
|
|
End If
|
|
Loop
|
|
Exit Do
|
|
End If
|
|
Loop
|
|
|
|
ts.Close
|
|
Set myFSO = Nothing
|
|
End Sub
|
|
|
|
Private Function FindThingNum(ThingName As String) As Integer
|
|
Dim i As Integer
|
|
Dim temp As String
|
|
Dim startpoint As Integer
|
|
Dim endpoint As Integer
|
|
|
|
For i = 0 To lstThings.ListCount - 1
|
|
temp = lstThings.List(i)
|
|
startpoint = InStr(temp, "-") + 2
|
|
endpoint = Len(temp) - startpoint + 1
|
|
temp = Mid(temp, startpoint, endpoint)
|
|
If temp = ThingName Then
|
|
FindThingNum = Val(lstThings.List(i))
|
|
Exit For
|
|
End If
|
|
Next
|
|
End Function
|
|
|
|
Private Function FindPowerNum(PowerName As String) As Integer
|
|
Dim myFSO As New Scripting.FileSystemObject
|
|
Dim ts As TextStream
|
|
Dim line As String
|
|
Dim number As Integer
|
|
Dim startclip As Integer
|
|
|
|
ChDir SourcePath
|
|
Set ts = myFSO.OpenTextFile("d_player.h", ForReading, False)
|
|
|
|
Do While InStr(ts.ReadLine, "Player powers. (don't edit this comment)") = 0
|
|
Loop
|
|
|
|
ts.SkipLine ' typedef enum
|
|
ts.SkipLine ' {
|
|
|
|
line = ts.ReadLine
|
|
number = 0
|
|
|
|
Do While InStr(line, "NUMPOWERS") = 0
|
|
startclip = InStr(line, PowerName)
|
|
If startclip <> 0 Then
|
|
FindPowerNum = number
|
|
Exit Do
|
|
End If
|
|
number = number + 1
|
|
line = ts.ReadLine
|
|
Loop
|
|
|
|
ts.Close
|
|
Set myFSO = Nothing
|
|
End Function
|
|
|
|
Private Sub WriteThing(Remove As Boolean, num As Integer)
|
|
Dim myFSOSource As New Scripting.FileSystemObject
|
|
Dim tsSource As TextStream
|
|
Dim myFSOTarget As New Scripting.FileSystemObject
|
|
Dim tsTarget As TextStream
|
|
Dim line As String
|
|
Dim word As String
|
|
Dim word2 As String
|
|
Dim flags As Long
|
|
Dim thingfound As Boolean
|
|
Dim i As Integer
|
|
|
|
thingfound = False
|
|
|
|
Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
|
|
Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
|
|
|
|
Do While Not tsSource.AtEndOfStream
|
|
line = tsSource.ReadLine
|
|
word = UCase(FirstToken(line))
|
|
word2 = UCase(SecondToken(line))
|
|
|
|
'If the current thing exists in the SOC, delete it.
|
|
If word = "THING" And Val(word2) = num Then
|
|
thingfound = True
|
|
Do While Len(TrimComplete(tsSource.ReadLine)) > 0 And Not (tsSource.AtEndOfStream)
|
|
Loop
|
|
Else
|
|
tsTarget.WriteLine line
|
|
End If
|
|
Loop
|
|
|
|
tsSource.Close
|
|
Set myFSOSource = Nothing
|
|
|
|
If Remove = False Then
|
|
If line <> "" Then tsTarget.WriteLine ""
|
|
tsTarget.WriteLine "Thing " & num
|
|
txtDoomednum.Text = TrimComplete(txtDoomednum.Text)
|
|
cmbSpawnstate.Text = TrimComplete(cmbSpawnstate.Text)
|
|
txtSpawnhealth.Text = TrimComplete(txtSpawnhealth.Text)
|
|
cmbSeestate.Text = TrimComplete(cmbSeestate.Text)
|
|
cmbSeesound.Text = TrimComplete(cmbSeesound.Text)
|
|
txtReactiontime.Text = TrimComplete(txtReactiontime.Text)
|
|
cmbAttacksound.Text = TrimComplete(cmbAttacksound.Text)
|
|
cmbPainstate.Text = TrimComplete(cmbPainstate.Text)
|
|
txtPainchance.Text = TrimComplete(txtPainchance.Text)
|
|
cmbPainsound.Text = TrimComplete(cmbPainsound.Text)
|
|
cmbMeleestate.Text = TrimComplete(cmbMeleestate.Text)
|
|
cmbMissilestate.Text = TrimComplete(cmbMissilestate.Text)
|
|
cmbDeathstate.Text = TrimComplete(cmbDeathstate.Text)
|
|
cmbDeathsound.Text = TrimComplete(cmbDeathsound.Text)
|
|
cmbXdeathstate.Text = TrimComplete(cmbXdeathstate.Text)
|
|
txtSpeed.Text = TrimComplete(txtSpeed.Text)
|
|
txtRadius.Text = TrimComplete(txtRadius.Text)
|
|
txtHeight.Text = TrimComplete(txtHeight.Text)
|
|
txtMass.Text = TrimComplete(txtMass.Text)
|
|
txtDamage.Text = TrimComplete(txtDamage.Text)
|
|
cmbActivesound.Text = TrimComplete(cmbActivesound.Text)
|
|
cmbRaisestate.Text = TrimComplete(cmbRaisestate.Text)
|
|
flags = 0
|
|
' Only 31 bits can be used, because VB is stupid.
|
|
For i = 0 To 26
|
|
If chkFlags(i).Value = 1 Then flags = flags + Val(chkFlags(i).Tag)
|
|
Next
|
|
If txtDoomednum.Text <> "" Then tsTarget.WriteLine "MAPTHINGNUM = " & Val(txtDoomednum.Text)
|
|
If cmbSpawnstate.Text <> "" Then tsTarget.WriteLine "SPAWNSTATE = " & Val(cmbSpawnstate.Text)
|
|
If txtSpawnhealth.Text <> "" Then tsTarget.WriteLine "SPAWNHEALTH = " & Val(txtSpawnhealth.Text)
|
|
If cmbSeestate.Text <> "" Then tsTarget.WriteLine "SEESTATE = " & Val(cmbSeestate.Text)
|
|
If cmbSeesound.Text <> "" Then tsTarget.WriteLine "SEESOUND = " & Val(cmbSeesound.Text)
|
|
If txtReactiontime.Text <> "" Then tsTarget.WriteLine "REACTIONTIME = " & Val(txtReactiontime.Text)
|
|
If cmbAttacksound.Text <> "" Then tsTarget.WriteLine "ATTACKSOUND = " & Val(cmbAttacksound.Text)
|
|
If cmbPainstate.Text <> "" Then tsTarget.WriteLine "PAINSTATE = " & Val(cmbPainstate.Text)
|
|
If txtPainchance.Text <> "" Then tsTarget.WriteLine "PAINCHANCE = " & Val(txtPainchance.Text)
|
|
If cmbPainsound.Text <> "" Then tsTarget.WriteLine "PAINSOUND = " & Val(cmbPainsound.Text)
|
|
If cmbMeleestate.Text <> "" Then tsTarget.WriteLine "MELEESTATE = " & Val(cmbMeleestate.Text)
|
|
If cmbMissilestate.Text <> "" Then tsTarget.WriteLine "MISSILESTATE = " & Val(cmbMissilestate.Text)
|
|
If cmbDeathstate.Text <> "" Then tsTarget.WriteLine "DEATHSTATE = " & Val(cmbDeathstate.Text)
|
|
If cmbDeathsound.Text <> "" Then tsTarget.WriteLine "DEATHSOUND = " & Val(cmbDeathsound.Text)
|
|
If cmbXdeathstate.Text <> "" Then tsTarget.WriteLine "XDEATHSTATE = " & Val(cmbXdeathstate.Text)
|
|
If txtSpeed.Text <> "" Then tsTarget.WriteLine "SPEED = " & Val(txtSpeed.Text)
|
|
If txtRadius.Text <> "" Then tsTarget.WriteLine "RADIUS = " & Val(txtRadius.Text)
|
|
If txtHeight.Text <> "" Then tsTarget.WriteLine "HEIGHT = " & Val(txtHeight.Text)
|
|
If txtMass.Text <> "" Then tsTarget.WriteLine "MASS = " & Val(txtMass.Text)
|
|
If txtDamage.Text <> "" Then tsTarget.WriteLine "DAMAGE = " & Val(txtDamage.Text)
|
|
If cmbActivesound.Text <> "" Then tsTarget.WriteLine "ACTIVESOUND = " & Val(cmbActivesound.Text)
|
|
If cmbRaisestate.Text <> "" Then tsTarget.WriteLine "RAISESTATE = " & Val(cmbRaisestate.Text)
|
|
tsTarget.WriteLine "FLAGS = " & flags
|
|
End If
|
|
|
|
tsTarget.Close
|
|
Set myFSOTarget = Nothing
|
|
|
|
FileCopy SOCTemp, SOCFile
|
|
|
|
Kill SOCTemp
|
|
|
|
If Remove = True Then
|
|
If thingfound = True Then
|
|
MsgBox "Thing removed from SOC."
|
|
Else
|
|
MsgBox "Thing not found in SOC."
|
|
End If
|
|
Else
|
|
MsgBox "Thing Saved."
|
|
End If
|
|
End Sub
|