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