trentdude2
Back from the dead
So will there also be new CTF, Match, Race stages? If so will they be based on the good contest maps, or maps the SRB2 team made? I can't wait to see 2.1.
I'm rather happy to say that after 2.1, this won't be quite given anymore. We've more-or-less taken the necessity of dealing with slot numbers and kicked it to the curb. SRB2 vanilla resources - states, objects, sprites, sounds, and flags - can now be referred to explicitly by name instead of slot number. When SRB2 updates and the slots switch around in future versions, or even in EXE modifications of 2.1, name references will remain correct.As usual with every update we do, SOCs will break.
# Helix-shooter scenery object; 2.0.6 version
# Everything on a line after an # is a comment and is not executed as SOC code.
# This SOC makes a rotating double-helix with one cross with the top at 768
# when mapthing number 3575 is placed at a height of 334 from the ground.
# Stick it in a glass tube for scenery!
# MT_SoftAxis
# Object that exists so MT_HelixShooter can rotate around it.
Thing 400
MAPTHINGNUM = 3575
SPAWNSTATE = 2300
SPAWNHEALTH = 1000
REACTIONTIME = 8
DEATHSTATE = 1615
SPEED = 655360
MASS = 100
DAMAGE = 1
FLAGS = 4624
# [Flags: NoBlockmap, NoGravity, NoClip]
# MT_HelixShooter
# Rotates/flickers around softaxis and shoots HelixBullets at it.
Thing 401
MAPTHINGNUM = 3576
SPAWNSTATE = 2301
SPAWNHEALTH = 1000
REACTIONTIME = 8
DEATHSTATE = 1615
SPEED = 655360
MASS = 100
DAMAGE = 1
FLAGS = 4608
# [Flags: NoGravity, Noclip]
# MT_HelixBullet
# The projectiles that make up the helix thing.
Thing 402
MAPTHINGNUM = -1
SPAWNSTATE = 2305
SPAWNHEALTH = 1000
SEESTATE = 0
SEESOUND = 0
REACTIONTIME = 8
ATTACKSOUND = 0
PAINSTATE = 0
PAINCHANCE = 0
PAINSOUND = 0
MELEESTATE = 0
MISSILESTATE = 0
DEATHSTATE = 0
DEATHSOUND = 0
XDEATHSTATE = 0
SPEED = 1310720
RADIUS = 720896
HEIGHT = 524288
MASS = 100
DAMAGE = 20
ACTIVESOUND = 0
RAISESTATE = 0
FLAGS = 66064
# [Flags: NoBlockmap, NoGravity, Missile]
# SoftAxis - [Spawn] Floats in place and plays ambient laser sound with object as source. WIP timing.
FRAME 2300
SPRITENUMBER = 118
SPRITESUBNUMBER = 0
DURATION = 35
NEXT = 2300
ACTION A_PlaySound
VAR1 = 86
VAR2 = 1
# HelixShooter1 - [Spawn] Can't act on map load, waits a tic before doing anything.
FRAME 2301
SPRITENUMBER = 187
SPRITESUBNUMBER = 0
DURATION = 1
NEXT = 2302
ACTION None
# HelixShooter2 - Sets nearest SoftAxis to HelixShooter's target.
FRAME 2302
SPRITENUMBER = 187
SPRITESUBNUMBER = 0
DURATION = 1
NEXT = 2303
ACTION A_FindTarget
Var1 = 400
Var2 = 0
# HelixShooter3 - Rotates around target SoftAxis.
FRAME 2303
SPRITENUMBER = 187
SPRITESUBNUMBER = 0
DURATION = 1
NEXT = 2304
ACTION A_RotateSpikeBall
# HelixShooter4 - Fires a helix bullet from 384 fracunits above target softaxis. Also causes flickering. (subtract 48 from total displacement)
FRAME 2304
SPRITENUMBER = 187
SPRITESUBNUMBER = 0
DURATION = 0
NEXT = 2303
ACTION A_FireShot
VAR1 = 402
VAR2 = 336
# {Next: HelixShooter3}
# HelixBullet - [Spawn] Just flies in a straight line like an ordinary projectile.
FRAME 2305
SPRITENUMBER = 78
SPRITESUBNUMBER = 32768
DURATION = -1
NEXT = 2305
ACTION None
# Helix-shooter scenery object; trunk version
# Everything on a line starting with # is a comment and is not executed as SOC code.
# This SOC makes a rotating double-helix with one cross with the top at 768
# when mapthing number 3575 is placed at a height of 334 from the ground.
# Stick it in a glass tube for scenery!
# DECLARE assigns freeslots to each new mobj and state name.
# Uses of these names in the SOC are wrappers for the automatically assigned
# slot numbers. Prefixes are used here, and in the SOC so SRB2 knows if it is
# a state or object that is being named.
FREESLOT
MT_SOFTAXIS
MT_HELIXSHOOTER
MT_HELIXBULLET
S_SOFTAXIS
S_HELIXSHOOTER1
S_HELIXSHOOTER2
S_HELIXSHOOTER3
S_HELIXSHOOTER4
S_HELIXBULLET
# Object that exists so MT_HELIXSHOOTER can rotate around it.
THING MT_SOFTAXIS
MAPTHINGNUM = 3575
SPAWNSTATE = S_SOFTAXIS
SPAWNHEALTH = 1000
REACTIONTIME = 8
DEATHSTATE = S_DISS
SPEED = 10*FRACUNIT
MASS = 100
DAMAGE = 1
FLAGS = MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP
# Rotates/flickers around target softaxis and shoots HelixBullets at it.
THING MT_HELIXSHOOTER
MAPTHINGNUM = 3576
SPAWNSTATE = S_HELIXSHOOTER1
SPAWNHEALTH = 1000
REACTIONTIME = 8
DEATHSTATE = S_DISS
SPEED = 10*FRACUNIT
MASS = 100
DAMAGE = 1
FLAGS = MF_NOGRAVITY|MF_NOCLIP
# The projectiles that make up the helix thing.
THING MT_HELIXBULLET
MAPTHINGNUM = -1
SPAWNSTATE = S_HELIXBULLET
SPAWNHEALTH = 1000
SEESTATE = S_NULL
SEESOUND = SFX_NONE
REACTIONTIME = 8
ATTACKSOUND = SFX_NONE
PAINSTATE = S_NULL
PAINCHANCE = 0
PAINSOUND = SFX_NONE
MELEESTATE = S_NULL
MISSILESTATE = S_NULL
DEATHSTATE = S_NULL
DEATHSOUND = SFX_NONE
XDEATHSTATE = S_NULL
SPEED = 20*FRACUNIT
RADIUS = 11*FRACUNIT
HEIGHT = 8*FRACUNIT
MASS = 100
DAMAGE = 20
ACTIVESOUND = SFX_NONE
RAISESTATE = S_NULL
FLAGS = MF_NOBLOCKMAP|MF_NOGRAVITY|MF_MISSILE
# [Spawn] Floats in place and plays ambient laser sound with object as source. WIP Timing. VAR1 has SFX_ in the name so SRB2 knows VAR1 is referring to a sound.
FRAME S_SOFTAXIS
SPRITENAME = SSPK
SPRITEFRAME = A
DURATION = TICRATE
NEXT = S_SOFTAXIS
ACTION A_PlaySound
VAR1 = SFX_LASER
VAR2 = 1
# [Spawn] Can't act on map load, waits a tic before doing anything.
FRAME S_HELIXSHOOTER1
SPRITENAME = HOOP
SPRITEFRAME = A
DURATION = 1
NEXT = S_HELIXSHOOTER2
ACTION None
# Sets nearest SoftAxis to HelixShooter's target; VAR1 says "MT_"SOFTAXIS so SRB2 knows I'm talking about a mobj
FRAME S_HELIXSHOOTER2
SPRITENAME = HOOP
SPRITEFRAME = A
DURATION = 50
NEXT = S_HELIXSHOOTER3
ACTION A_FindTarget
Var1 = MT_SOFTAXIS
Var2 = 0
# Rotates around target SoftAxis.
FRAME S_HELIXSHOOTER3
SPRITENAME = HOOP
SPRITEFRAME = A
DURATION = 1
NEXT = S_HELIXSHOOTER4
ACTION A_RotateSpikeBall
# Fires a helix bullet from 384 fracunits above target softaxis. Also causes flickering. (subtract 48 from total displacement)
FRAME S_HELIXSHOOTER4
SPRITENAME = HOOP
SPRITEFRAME = A
DURATION = 0
NEXT = S_HELIXSHOOTER3
ACTION A_FireShot
VAR1 = MT_HELIXBULLET
VAR2 = 384-48
# [Spawn] Just flies in a straight line like an ordinary projectile.
FRAME S_HELIXBULLET
SPRITENAME = MISL
SPRITEFRAME = A+FF_FULLBRIGHT
DURATION = -1
NEXT = S_HELIXBULLET
ACTION None
I'm rather happy to say that after 2.1, this won't be quite given anymore. We've more-or-less taken the necessity of dealing with slot numbers and kicked it to the curb. SRB2 vanilla resources - states, objects, sprites, sounds, and flags - can now be referred to explicitly by name instead of slot number. When SRB2 updates and the slots switch around in future versions, or even in EXE modifications of 2.1, name references will remain correct.
Furthermore, you can give names to freeslot states and objects; when a freeslot resource name is declared(in the new FREESLOT block of mainCFG), that name is then assigned the next available free slot. This not only means that you won't have to change slot numbers for SOCs that use freeslots between versions, but that save for an instance in which the exact same name is used twice, SOCs will no longer be susceptible to state and object slot conflicts.
Finally, in part to facilitate the continued use of actions that require upper and lower 16 bits for multiple variables, you are now able to perform mathematical operations in (formerly) numbered fields. Addition, subtraction, multiplication, division, and bitshifts are currently supported, though at the time of writing they do not follow the proper order of operations. Special names are also available for referring to specific numbers, such as FRACUNIT(65536, or 2^16), and TICRATE(35, number of tics in a second).
I'm rather happy to say that after 2.1, this won't be quite given anymore. We've more-or-less taken the necessity of dealing with slot numbers and kicked it to the curb. SRB2 vanilla resources - states, objects, sprites, sounds, and flags - can now be referred to explicitly by name instead of slot number. When SRB2 updates and the slots switch around in future versions, or even in EXE modifications of 2.1, name references will remain correct.
Furthermore, you can give names to freeslot states and objects; when a freeslot resource name is declared(in the new FREESLOT block of mainCFG), that name is then assigned the next available free slot. This not only means that you won't have to change slot numbers for SOCs that use freeslots between versions, but that save for an instance in which the exact same name is used twice, SOCs will no longer be susceptible to state and object slot conflicts.
Finally, in part to facilitate the continued use of actions that require upper and lower 16 bits for multiple variables, you are now able to perform mathematical operations in (formerly) numbered fields. Addition, subtraction, multiplication, division, and bitshifts are currently supported, though at the time of writing they do not follow the proper order of operations. Special names are also available for referring to specific numbers, such as FRACUNIT(65536, or 2^16), and TICRATE(35, number of tics in a second).
I can't wait for this update to be completed and play THZ and CEZ.
new multiplayer stages, a possible new shield and improved single player levels this is really exciting!
But the one thing I'm still going to hope for is that Castle Eggman Zone, Arid Desert Zone, and Red Volcano Zone will have their full 3 acts with bosses.
I find shameful and disrespectful and offensive the fact that such thing still resides in the private code.And now, that same SOC converted to the current private version of SRB2:
That would be me.(Congrats to whoever got this future feature actually working)
Water on the ceiling! O_O!犬夜叉;718427 said:
You saw nothing.
this is going in here instead of the news topic to give the things posted before me more notice, as well