Latest Features
Features that have been added from the WW2GI base:
(Older features have been moved to this page)
Build 24 (09/04/00 InProgress)Moving weapon display control to CON.
Now have first three weapons (Pistol, shotgun, chaingun under CON control). Added command for SIN. Also added displayrand command to have a non-synced random function.
Here is the CON code to display the chaingun.
ifvarg weaponcount 0
{
// gun_pos -= sintable[(*kb)<<7]>>12; setvarvar wp_temp weaponcount mulvar wp_temp 128 // 2^7 sin wp_temp wp_temp divvar wp_temp 4096 // 2^12
subvarvar gun_pos wp_temp // subvarvar
getactor[THISACTOR].pal wp_temp
ifvarn wp_temp 1
{
setvar temp 1
displayrand wp_temp
andvar wp_temp 3
subvarvar temp wp_temp
addvarvar weapon_xoffset temp } }
setvar x 168
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 260 addvarvar y looking_arc subvarvar y gun_pos
setvar tilenum CHAINGUN
myospal x y tilenum gs orientation pal
ifvare weaponcount 0
{
setvar x 178
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 233
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum CHAINGUN addvar tilenum 1
myospal x y tilenum gs orientation pal
}
else
{
ifvarg weaponcount 4
{
ifvarl weaponcount 12
{
setvar wp_temp 0
getactor[THISACTOR].pal temp
ifvarn temp 1
{
displayrand wp_temp
andvar wp_temp 7
}
setvar x 136 // 140-4
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
addvarvar x wp_temp
setvar y 208 addvarvar y wp_temp addvarvar y looking_arc subvarvar y gun_pos
setvarvar temp weaponcount // -((*kb)>>1)
divvar temp 2
subvarvar y temp
setvar tilenum CHAINGUN
addvar tilenum 5
setvarvar temp weaponcount // -((*kb-4)/5)
subvar temp 4
divvar temp 5
addvarvar tilenum temp
// draw first muzzle flash
myospal x y tilenum gs orientation pal
getactor[THISACTOR].pal temp
ifvarn temp 1
{
displayrand wp_temp
andvar wp_temp 7
addvarvar x wp_temp
}
setvar x 180 // 184-4
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
addvarvar x wp_temp
setvar y 208
addvarvar y wp_temp
addvarvar y looking_arc
subvarvar y gun_pos
setvarvar temp weaponcount // -((*kb)>>1)
divvar temp 2
subvarvar y temp
setvar tilenum CHAINGUN
addvar tilenum 5
setvarvar temp weaponcount // +((*kb-4)/5)
subvar temp 4
divvar temp 5
addvarvar tilenum temp
// draw second muzzle flash
myospal x y tilenum gs orientation pal
}
}
ifvarl weaponcount 8
{
displayrand wp_temp
andvar wp_temp 7
addvarvar x wp_temp
setvar x 158 // 162-4
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
addvarvar x wp_temp
setvar y 208
addvarvar y wp_temp
addvarvar y looking_arc
subvarvar y gun_pos
setvarvar temp weaponcount
divvar temp 2
subvarvar y temp
setvar tilenum CHAINGUN
addvar tilenum 5
setvarvar temp weaponcount // +((*kb-2)/5)
subvar temp 2
divvar temp 5
addvarvar tilenum temp
myospal x y tilenum gs orientation pal
setvar x 178
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 233
addvarvar y looking_arc
subvarvar y gun_pos
setvarvar temp weaponcount // ((*kb)>>1)
divvar temp 2
setvar tilenum CHAINGUN
addvar tilenum 1
addvarvar tilenum temp // +((*kb)>>1)
myospal x y tilenum gs orientation pal
}
else
{
setvar x 178
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 233
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum CHAINGUN
addvar tilenum 1
myospal x y tilenum gs orientation pal
}
Build 24 (InProgress)
Moving weapon display control to CON.
Added event for weapon display.
Porting code from C to CON for display of weapons. This is (of course) causing me to add features.
Here is the code from the Duke source for the display of the Shotgun:
weapon_xoffset -= 8;
switch(*kb)
{
case 1:
case 2:
myospal(weapon_xoffset+168-(p->look_ang>>1),looking_arc+201-gun_pos,
SHOTGUN+2,-128,o,pal);
case 0:
case 6:
case 7:
case 8:
myospal(weapon_xoffset+146-(p->look_ang>>1),looking_arc+202-gun_pos,
SHOTGUN,gs,o,pal);
break;
case 3:
case 4:
case 5:
case 9:
case 10:
case 11:
case 12:
if( *kb > 1 && *kb < 5 )
{
gun_pos -= 40;
weapon_xoffset += 20;
myospal(weapon_xoffset+178-(p->look_ang>>1),looking_arc+194-gun_pos, SHOTGUN+1+((*(kb)-1)>>1),-128,o,pal); }
myospal(weapon_xoffset+158-(p->look_ang>>1),looking_arc+220-gun_pos, SHOTGUN+3,gs,o,pal);
break; case 13: case 14: case 15: myospal(32+weapon_xoffset+166-(p->look_ang>>1),looking_arc+210-gun_pos, SHOTGUN+4,gs,o,pal); break; case 16: case 17: case 18: case 19: myospal(64+weapon_xoffset+170-(p->look_ang>>1),looking_arc+196-gun_pos, SHOTGUN+5,gs,o,pal); break; case 20: case 21: case 22: case 23: myospal(64+weapon_xoffset+176-(p->look_ang>>1),looking_arc+196-gun_pos, SHOTGUN+6,gs,o,pal); break; case 24: case 25: case 26: case 27: myospal(64+weapon_xoffset+170-(p->look_ang>>1),looking_arc+196-gun_pos, SHOTGUN+5,gs,o,pal); break; case 28: case 29: case 30: myospal(32+weapon_xoffset+156-(p->look_ang>>1),looking_arc+206-gun_pos, SHOTGUN+4,gs,o,pal); break;
And here is the CON code to display the same thing. I named kickback (from the player structure and used in the C source as 'kb') to weaponcount so that the code was easier to follow. Also, many of the variables have been provided by the event code for the CON programmer (lookng_angSR1, for instance)
subvar weapon_xoffset 8
switch weaponcount
case 1
case 2
setvar x 168
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 201
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum SHOTGUN
addvar tilenum 2
setvar shade -128
myospal x y tilenum shade orientation pal
break
case 0
case 6
case 7
case 8
setvar x 146
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 202
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum SHOTGUN
myospal x y tilenum gs orientation pal
break
case 3
case 4
case 5
case 9
case 10
case 11
case 12
ifvarl weaponcount 5
{
subvar gun_pos 40
addvar weapon_xoffset 20
setvar x 178
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 194
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum SHOTGUN
addvar tilenum 1
setvarvar wp_temp weaponcount
subvar wp_temp 1
divvar wp_temp 2 // >>1
addvarvar tilenum wp_temp
setvar shade -128
myospal x y tilenum shade orientation pal
}
setvar x 158
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 220
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum SHOTGUN
addvar tilenum 3
myospal x y tilenum gs orientation pal
break
case 13
case 14
case 15
setvar x 198 // 166 + 32
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 210
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum SHOTGUN
addvar tilenum 4
myospal x y tilenum gs orientation pal
break
case 16
case 17
case 18
case 19
setvar x 234 // 170 + 64
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 196
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum SHOTGUN
addvar tilenum 5
myospal x y tilenum gs orientation pal
break
case 20
case 21
case 22
case 23
setvar x 240 // 176 + 64
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 196
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum SHOTGUN
addvar tilenum 6
myospal x y tilenum gs orientation pal
break
case 24
case 25
case 26
case 27
setvar x 234 // 170 + 64
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 196
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum SHOTGUN
addvar tilenum 5
myospal x y tilenum gs orientation pal
break
case 28
case 29
case 30
setvar x 188 // 156 + 32
addvarvar x weapon_xoffset
subvarvar x looking_angSR1
setvar y 206
addvarvar y looking_arc
subvarvar y gun_pos
setvar tilenum SHOTGUN
addvar tilenum 4
myospal x y tilenum gs orientation pal
break
endswitch
Build 23 (06/20/00)
Build Source is release by Ken!
http://www.advsys.net/ken/buildsrc/default.htm
(Note that this is NOT the Duke Source)
Changes:
Saved files were not being detected correctly on initialization.
esample.con changed to only show 'user' level-load screen when a user map is being loaded
Previous Build Notes