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