• Work continues

General Info
Main Page
Latest News
Schedule
What is it?
About Matt
About This Site

Duke Enhancements
Latest Features
Older Features
Cheat Codes

Duke Insider
Language Basics
Compile Time
Room over Room
Player Structures
UserDef Explanations

More Information
Features Database
E Duke Forum

WW2GI Enhancements
Variables
Weapon Changes
Weapon Settings
System Variables
Events
All

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