// Note: This file has been directly converted from the EDuke32 // C source code to CON code, without any fixes or improvements. // Further changes to player.c may or may not be reflected here. /* gamevar currentweapon 0 0 // (system) (pointer) gamevar gs 0 0 // (system) (pointer) gamevar looking_arc 0 0 // (system) (pointer) gamevar gun_pos 0 0 // (system) (pointer) gamevar weapon_xoffset 0 0 // (system) (pointer) gamevar weaponcount 0 0 // (system) (pointer) gamevar looking_angSR1 0 0 // (system) (pointer) gamevar xdim 0 0 // (system) (pointer) (read only) gamevar ydim 0 0 // (system) (pointer) (read only) gamevar windowx1 0 0 // (system) (pointer) (read only) gamevar windowx2 0 0 // (system) (pointer) (read only) gamevar windowy1 0 0 // (system) (pointer) (read only) gamevar windowy2 0 0 // (system) (pointer) (read only) */ gamevar hud_tilenum 0 1 gamevar hud_x 0 1 gamevar hud_y 0 1 gamevar hud_scale 65536 1 gamevar hud_angle 0 1 gamevar hud_shade 0 1 gamevar hud_pal 0 1 gamevar hud_orientation 0 1 gamevar hud_fistsign 0 1 gamevar hud_totaltime 0 1 gamevar hud_shadef 0 1 gamevar hud_shadef_crystal 0 1 gamevar hud_palf 0 1 // It is unfortunate that we need so many temporary gamevars. gamevar hud_temp 0 1 gamevar hud_temp2 0 1 gamevar hud_temp3 0 1 gamevar hud_temp4 0 1 /* // The following temporary gamevars are named differently because they are used // in G_Draw[...] which would overwrite their values if used elsewhere. */ gamevar hud_G_Draw_temp 0 1 gamevar hud_G_Draw_temp2 0 1 gamevar weapon_pos 0 1 gamevar weaponscale 0 1 gamevar playerid 0 1 // define ROTATESPRITE_MAX 2048 // preliminary functions state G_DrawTilePal ifvarand hud_orientation 4 addvar hud_angle 1024 orvar hud_orientation 2 rotatesprite hud_x hud_y hud_scale hud_angle hud_tilenum hud_shade hud_pal hud_orientation windowx1 windowy1 windowx2 windowy2 ifvarand hud_orientation 2 xorvar hud_orientation 2 ifvarand hud_orientation 4 subvar hud_angle 1024 ends state G_DrawTileScaled setvar hud_G_Draw_temp 192 // xoff switch currentweapon case DEVISTATOR_WEAPON case TRIPBOMB_WEAPON setvar hud_G_Draw_temp 160 break default ifvarand hud_orientation 262144 { setvar hud_G_Draw_temp 160 xorvar hud_orientation 262144 } break endswitch ifvarand hud_orientation 4 addvar hud_angle 1024 /* ifvarg rendermode 2 ifvarn usemodels 0 ifhasmodel hud_tilenum hud_pal { setvar hud_G_Draw_temp2 224 mulvarvar hud_G_Draw_temp2 weaponscale divvar hud_G_Draw_temp2 100 addvar hud_y 224 subvarvar hud_y hud_G_Draw_temp2 } */ mulvarvar hud_x weaponscale divvar hud_x 100 setvarvar hud_G_Draw_temp2 hud_G_Draw_temp mulvarvar hud_G_Draw_temp2 weaponscale divvar hud_G_Draw_temp2 100 subvarvar hud_G_Draw_temp hud_G_Draw_temp2 addvarvar hud_x hud_G_Draw_temp mulvarvar hud_y weaponscale divvar hud_y 100 setvar hud_G_Draw_temp 200 setvarvar hud_G_Draw_temp2 hud_G_Draw_temp mulvarvar hud_G_Draw_temp2 weaponscale divvar hud_G_Draw_temp2 100 subvarvar hud_G_Draw_temp hud_G_Draw_temp2 addvarvar hud_y hud_G_Draw_temp // setvar hud_scale 65536 // do this elsewhere; leave it open for modification mulvarvar hud_scale weaponscale divvar hud_scale 100 orvar hud_orientation 2 rotatesprite hud_x hud_y hud_scale hud_angle hud_tilenum hud_shade hud_pal hud_orientation windowx1 windowy1 windowx2 windowy2 ifvarand hud_orientation 2 xorvar hud_orientation 2 ifvarand hud_orientation 4 subvar hud_angle 1024 ends state G_DrawWeaponTile // basic fading between player weapon shades ifvarvarn hud_shade hud_shadef { setvar hud_G_Draw_temp 0 ifvare hud_pal 0 setvar hud_G_Draw_temp 1 ifvarvare hud_pal hud_palf setvar hud_G_Draw_temp 1 ifvare hud_G_Draw_temp 1 { setvarvar hud_G_Draw_temp hud_shade subvarvar hud_G_Draw_temp hud_shadef setvarvar hud_G_Draw_temp2 hud_G_Draw_temp shiftvarr hud_G_Draw_temp 2 addvarvar hud_shadef hud_G_Draw_temp ifvare hud_G_Draw_temp 0 { shiftvarr hud_G_Draw_temp2 1 addvarvar hud_shadef hud_G_Draw_temp2 ifvare hud_G_Draw_temp2 0 setvarvar hud_shadef hud_shade } } } else setvarvar hud_shadef hud_shade setvarvar hud_palf hud_pal setvarvar hud_shade hud_shadef state G_DrawTileScaled ends state G_DrawWeaponTile_crystal // basic fading between player weapon shades ifvarvarn hud_shade hud_shadef_crystal { setvarvar hud_G_Draw_temp hud_shade subvarvar hud_G_Draw_temp hud_shadef_crystal setvarvar hud_G_Draw_temp2 hud_G_Draw_temp shiftvarr hud_G_Draw_temp 2 addvarvar hud_shadef_crystal hud_G_Draw_temp ifvare hud_G_Draw_temp 0 { shiftvarr hud_G_Draw_temp2 1 addvarvar hud_shadef_crystal hud_G_Draw_temp2 ifvare hud_G_Draw_temp2 0 setvarvar hud_shadef_crystal hud_shade } } else setvarvar hud_shadef_crystal hud_shade setvarvar hud_shade hud_shadef_crystal state G_DrawTileScaled ends // helper states state reset_hud_weapon_x_coordinate setvarvar hud_x weapon_xoffset subvarvar hud_x looking_angSR1 ends state reset_hud_weapon_y_coordinate setvarvar hud_y looking_arc subvarvar hud_y gun_pos ends state reset_hud_weapon_coordinates state reset_hud_weapon_x_coordinate state reset_hud_weapon_y_coordinate ends state determine_animation getuserdef[THISACTOR].pause_on hud_temp ifvarn hud_temp 0 setvar hud_temp 1 ifvarand player[THISACTOR].gm 1 // MODE_MENU orvar hud_temp 1 getactor[playerid].pal hud_G_Draw_temp ifvare hud_G_Draw_temp 1 orvar hud_temp 1 ends // other EVENT_DISPLAYWEAPON code state draw_shrunk_fists // Shrunk Running Fists // common calculations state reset_hud_weapon_x_coordinate setvarvar hud_temp3 looking_arc ifvare player[THISACTOR].jetpack_on 0 { getactor[playerid].xvel hud_temp2 shiftvarr hud_temp2 3 addvar hud_temp3 32 subvarvar hud_temp3 hud_temp2 addvarvar hud_fistsign hud_temp2 } // common calculations continued setvarvar hud_temp2 hud_fistsign sin hud_temp2 hud_temp2 setvarvar hud_temp4 hud_temp2 shiftvarr hud_temp2 10 shiftvarr hud_temp4 8 ifvarl hud_temp4 0 mulvar hud_temp4 -1 // right fist guniqhudid 101 addvarvar hud_x hud_temp2 addvar hud_x 250 setvarvar hud_y hud_temp3 addvar hud_y 258 subvarvar hud_y hud_temp4 setvar hud_tilenum FIST state G_DrawTilePal // cleanup subvar hud_x 250 // left fist guniqhudid 102 subvarvar hud_x hud_temp2 addvar hud_x 40 setvarvar hud_y hud_temp3 addvar hud_y 200 addvarvar hud_y hud_temp4 orvar hud_orientation 4 state G_DrawTilePal // cleanup setvar hud_orientation 0 setvar hud_angle 0 guniqhudid 0 ends state draw_quick_kick // Quick Kick setvar hud_temp 14 subvarvar hud_temp player[THISACTOR].quick_kick setvar hud_temp2 0 ifvarn hud_temp 14 setvar hud_temp2 1 ifvarn player[THISACTOR].last_quick_kick 0 setvar hud_temp2 1 ifvare hud_temp2 1 { getplayer[THISACTOR].hudpal hud_pal ifvare hud_pal 0 getplayer[THISACTOR].palookup hud_pal guniqhudid 100 // common calculations state reset_hud_weapon_coordinates setvar hud_tilenum KNEE setvar hud_orientation 262148 // o|4|262144 setvar hud_temp3 0 ifvarg hud_temp 5 ifvarl hud_temp 13 { addvar hud_x 144 // 160-16 addvar hud_y 214 addvar hud_tilenum 1 state G_DrawTileScaled setvar hud_temp3 1 } ifvare hud_temp3 0 { addvar hud_x 80 addvar hud_y 250 state G_DrawTileScaled } } ends // weapon code state draw_kick // KNEE_WEAPON: ifvarg weaponcount 0 { guniqhudid currentweapon state reset_hud_weapon_coordinates ifvare hud_pal 0 getplayer[THISACTOR].palookup hud_pal setvar hud_tilenum KNEE setvar hud_temp3 0 ifvarg weaponcount 4 ifvarl weaponcount 10 { addvar hud_x 160 addvar hud_y 214 addvar hud_tilenum 1 state G_DrawTileScaled setvar hud_temp3 1 } ifvare hud_temp3 0 { addvar hud_x 220 addvar hud_y 250 state G_DrawTileScaled } } ends state draw_tripbomb // TRIPBOMB_WEAPON: state reset_hud_weapon_coordinates addvar hud_x 8 addvar hud_y 10 ifvarg weaponcount 6 { setvarvar hud_temp weaponcount shiftvarl hud_temp 3 addvarvar hud_y hud_temp } else ifvarl weaponcount 4 { setvarvar hud_temp currentweapon shiftvarl hud_temp 2 guniqhudid hud_temp addvar hud_x 142 addvar hud_y 234 setvar hud_tilenum HANDHOLDINGLASER addvar hud_tilenum 3 state G_DrawWeaponTile // undo subvar hud_x 142 subvar hud_y 234 } // common to both hands addvar hud_y 249 setvarvar hud_tilenum weaponcount shiftvarr hud_tilenum 2 addvar hud_tilenum HANDHOLDINGLASER // left hand guniqhudid currentweapon addvar hud_x 130 state G_DrawWeaponTile // right hand setvarvar hud_temp3 currentweapon shiftvarl hud_temp3 1 guniqhudid hud_temp3 /* // absolute method subvar hud_x 130 // undo addvar hud_x 152 */ // relative method addvar hud_x 22 orvar hud_orientation 4 state G_DrawWeaponTile ifvarand hud_orientation 4 xorvar hud_orientation 4 guniqhudid 0 ends state draw_rpg // RPG_WEAPON: setvarvar hud_x weapon_xoffset setvarvar hud_y looking_arc shiftvarl hud_y 1 subvarvar hud_y gun_pos setvarvar hud_temp weaponcount shiftvarl hud_temp 7 addvar hud_temp 768 sin hud_temp hud_temp shiftvarr hud_temp 11 subvarvar hud_x hud_temp subvarvar hud_y hud_temp orvar hud_orientation 512 addvar hud_x 164 addvar hud_y 176 ifvarg weaponcount 0 ifvarl weaponcount 8 { setvarvar hud_tilenum weaponcount shiftvarr hud_tilenum 1 addvar hud_tilenum RPGGUN state G_DrawWeaponTile } setvar hud_tilenum RPGGUN state G_DrawWeaponTile ifvarand hud_orientation 512 xorvar hud_orientation 512 ends state draw_shotgun // SHOTGUN_WEAPON: state reset_hud_weapon_coordinates subvar hud_x 8 switch weaponcount case 1 case 2 setvarvar hud_temp4 currentweapon shiftvarl hud_temp4 1 guniqhudid hud_temp4 addvar hud_x 168 addvar hud_y 201 setvar hud_shade -128 setvar hud_tilenum SHOTGUN addvar hud_tilenum 2 state G_DrawWeaponTile subvar hud_x 168 subvar hud_y 201 setvarvar hud_shade gs case 0 case 6 case 7 case 8 guniqhudid currentweapon addvar hud_x 146 addvar hud_y 202 setvar hud_tilenum SHOTGUN state G_DrawWeaponTile guniqhudid 0 break case 3 case 4 case 5 case 9 case 10 case 11 case 12 ifvarg weaponcount 1 ifvarl weaponcount 5 { addvar hud_y 40 addvar hud_x 20 setvarvar hud_temp4 currentweapon shiftvarl hud_temp4 1 guniqhudid hud_temp4 addvar hud_x 178 addvar hud_y 194 setvar hud_shade -128 setvarvar hud_tilenum weaponcount subvar hud_tilenum 1 shiftvarr hud_tilenum 1 addvar hud_tilenum SHOTGUN addvar hud_tilenum 1 state G_DrawWeaponTile subvar hud_x 178 subvar hud_y 194 setvarvar hud_shade gs } guniqhudid currentweapon addvar hud_x 158 addvar hud_y 220 setvar hud_tilenum SHOTGUN addvar hud_tilenum 3 state G_DrawWeaponTile guniqhudid 0 break case 13 case 14 case 15 case 28 case 29 case 30 guniqhudid currentweapon addvar hud_x 198 // 32 + 166 addvar hud_y 210 setvar hud_tilenum SHOTGUN addvar hud_tilenum 4 state G_DrawWeaponTile guniqhudid 0 break case 16 case 17 case 18 case 19 case 24 case 25 case 26 case 27 guniqhudid currentweapon addvar hud_x 234 // 64 + 170 addvar hud_y 196 setvar hud_tilenum SHOTGUN addvar hud_tilenum 5 state G_DrawWeaponTile break case 20 case 21 case 22 case 23 guniqhudid currentweapon addvar hud_x 240 // 64 + 176 addvar hud_y 196 setvar hud_tilenum SHOTGUN addvar hud_tilenum 6 state G_DrawWeaponTile break endswitch ends state draw_chaingun // CHAINGUN_WEAPON: // hud_temp4 = FIREDELAY state reset_hud_weapon_coordinates ifvarg weaponcount 0 { setvarvar hud_temp weaponcount shiftvarl hud_temp 7 sin hud_temp hud_temp shiftvarr hud_temp 12 addvarvar hud_y hud_temp state determine_animation ifvarn hud_temp 1 { displayrand hud_temp andvar hud_temp 3 mulvar hud_temp -1 addvar hud_temp 1 addvarvar hud_x hud_temp } } // base addvar hud_x 168 addvar hud_y 260 setvar hud_tilenum CHAINGUN state G_DrawWeaponTile subvar hud_x 168 subvar hud_y 260 switch weaponcount case 0 addvar hud_x 178 addvar hud_y 233 addvar hud_tilenum 1 // relative state G_DrawWeaponTile break default state determine_animation ifvarvarg weaponcount hud_temp4 ifvarvarl weaponcount hud_totaltime { // muzzleflash 1 ifvarn hud_temp 1 { displayrand hud_temp3 andvar hud_temp3 7 } else setvar hud_temp3 0 addvar hud_x 136 // -4+140 addvarvar hud_x hud_temp3 setvarvar hud_temp2 weaponcount shiftvarr hud_temp2 1 addvarvar hud_y hud_temp3 subvarvar hud_y hud_temp2 addvar hud_y 208 setvarvar hud_tilenum weaponcount subvar hud_tilenum 4 divvar hud_tilenum 5 addvar hud_tilenum CHAINGUN addvar hud_tilenum 5 state G_DrawWeaponTile // cleanup subvarvar hud_x hud_temp3 subvarvar hud_y hud_temp3 // muzzleflash 3 ifvarn hud_temp 1 { displayrand hud_temp3 andvar hud_temp3 7 } addvar hud_x 44 // relative addvarvar hud_x hud_temp3 addvarvar hud_y hud_temp3 state G_DrawWeaponTile // cleanup subvar hud_x 180 // -4+140 + 44 subvar hud_y 208 subvarvar hud_x hud_temp3 subvarvar hud_y hud_temp3 addvarvar hud_y hud_temp2 } subvar hud_totaltime 4 ifvarvarl weaponcount hud_totaltime { // muzzleflash 2 ifvarn hud_temp 1 { displayrand hud_temp3 andvar hud_temp3 7 } else setvar hud_temp3 0 setvarvar hud_temp2 weaponcount shiftvarr hud_temp2 1 addvarvar hud_x hud_temp3 addvar hud_x 158 // -4+162 addvarvar hud_y hud_temp3 subvarvar hud_y hud_temp2 addvar hud_y 208 setvarvar hud_tilenum weaponcount subvar hud_tilenum 2 divvar hud_tilenum 5 addvar hud_tilenum CHAINGUN addvar hud_tilenum 5 state G_DrawWeaponTile // cleanup subvarvar hud_x hud_temp3 subvar hud_x 158 subvarvar hud_y hud_temp3 addvarvar hud_y hud_temp2 subvar hud_y 208 // barrels (hot) addvar hud_x 178 addvar hud_y 233 setvar hud_tilenum CHAINGUN addvar hud_tilenum 1 addvarvar hud_tilenum hud_temp2 state G_DrawWeaponTile } else { // barrels addvar hud_x 178 addvar hud_y 233 setvar hud_tilenum CHAINGUN addvar hud_tilenum 1 state G_DrawWeaponTile } break endswitch ends state draw_pistol // PISTOL_WEAPON: // hud_temp4 = FIREDELAY // hud_temp3 = RELOAD state reset_hud_weapon_y_coordinate setvar hud_tilenum FIRSTGUN addvar hud_totaltime 1 ifvarvarl weaponcount hud_totaltime { setvar hud_x 183 // 195-12 addvarvar hud_x weapon_xoffset subvarvar hud_x looking_angSR1 addvar hud_y 244 ifvarvare weaponcount hud_temp4 subvar hud_x 3 ifvarl weaponcount 3 addvarvar hud_tilenum weaponcount setvar hud_orientation 2 guniqhudid currentweapon state G_DrawWeaponTile guniqhudid 0 } else { orvar hud_orientation 512 subvarvar hud_temp3 weaponcount ifvarg hud_temp3 17 { guniqhudid currentweapon setvar hud_x 194 subvarvar hud_x looking_angSR1 addvar hud_y 230 addvar hud_tilenum 4 state G_DrawWeaponTile guniqhudid 0 } else ifvarg hud_temp3 12 { addvar hud_tilenum 6 setvarvar hud_temp weaponcount shiftvarl hud_temp 3 setvar hud_x 244 subvarvar hud_x hud_temp subvarvar hud_x looking_angSR1 setvarvar hud_temp2 weaponcount shiftvarl hud_temp2 4 addvar hud_y 130 addvarvar hud_y hud_temp2 state G_DrawWeaponTile subvar hud_y 130 subvarvar hud_y hud_temp2 subvar hud_tilenum 6 guniqhudid currentweapon setvar hud_x 224 subvarvar hud_x looking_angSR1 addvar hud_y 220 addvar hud_tilenum 5 state G_DrawWeaponTile guniqhudid 0 } else ifvarg hud_temp3 7 { addvar hud_tilenum 6 setvarvar hud_temp weaponcount shiftvarl hud_temp 1 setvar hud_x 124 addvarvar hud_x hud_temp subvarvar hud_x looking_angSR1 setvarvar hud_temp2 weaponcount shiftvarl hud_temp2 3 addvar hud_y 430 subvarvar hud_y hud_temp2 state G_DrawWeaponTile subvar hud_y 430 addvarvar hud_y hud_temp2 subvar hud_tilenum 6 guniqhudid currentweapon setvar hud_x 224 subvarvar hud_x looking_angSR1 addvar hud_y 220 addvar hud_tilenum 5 state G_DrawWeaponTile guniqhudid 0 } else ifvarg hud_temp3 4 { setvar hud_x 184 subvarvar hud_x looking_angSR1 addvar hud_y 235 addvar hud_tilenum 8 state G_DrawWeaponTile subvar hud_y 235 subvar hud_tilenum 8 guniqhudid currentweapon setvar hud_x 224 subvarvar hud_x looking_angSR1 addvar hud_y 210 addvar hud_tilenum 5 state G_DrawWeaponTile guniqhudid 0 } else ifvarg hud_temp3 2 { setvar hud_x 164 subvarvar hud_x looking_angSR1 addvar hud_y 245 addvar hud_tilenum 8 state G_DrawWeaponTile subvar hud_y 245 subvar hud_tilenum 8 guniqhudid currentweapon setvar hud_x 224 subvarvar hud_x looking_angSR1 addvar hud_y 220 addvar hud_tilenum 5 state G_DrawWeaponTile guniqhudid 0 } else ifvarg hud_temp3 0 { guniqhudid currentweapon setvar hud_x 194 subvarvar hud_x looking_angSR1 addvar hud_y 235 addvar hud_tilenum 5 state G_DrawWeaponTile guniqhudid 0 } } ends state draw_pipebomb // HANDBOMB_WEAPON: state reset_hud_weapon_coordinates guniqhudid currentweapon setvar hud_tilenum HANDTHROW ifvarn weaponcount 0 { ifvarvarl weaponcount hud_totaltime { ifvarl weaponcount 7 { setvarvar hud_temp weaponcount mulvar hud_temp 10 addvarvar hud_y hud_temp // D } else ifvarl weaponcount 12 { setvarvar hud_temp weaponcount subvar hud_temp 10 mulvar hud_temp 20 subvarvar hud_y hud_temp // U } else ifvarl weaponcount 20 { setvarvar hud_temp weaponcount subvar hud_temp 14 mulvar hud_temp 9 addvarvar hud_y hud_temp // D } addvar hud_x 190 addvar hud_y 250 switch weaponcount /* case 0 case 1 case 2 case 3 case 4 addvar hud_tilenum 0 break */ case 5 case 6 case 7 case 8 case 9 case 10 case 11 addvar hud_tilenum 1 break case 12 case 13 case 14 case 15 case 16 case 17 case 18 case 19 case 20 addvar hud_tilenum 2 break endswitch state G_DrawWeaponTile } } else { addvar hud_x 190 addvar hud_y 260 state G_DrawWeaponTile } guniqhudid 0 ends state draw_detonator // HANDREMOTE_WEAPON: state reset_hud_weapon_coordinates guniqhudid currentweapon addvar hud_x 102 // -48+150 addvar hud_y 258 setvar hud_tilenum HANDREMOTE switch weaponcount /* case 0 case 6 case 7 case 8 case 9 case 10 addvar hud_tilenum 0 break */ case 1 case 2 case 4 case 5 addvar hud_tilenum 1 break case 3 addvar hud_tilenum 2 break endswitch state G_DrawWeaponTile guniqhudid 0 ends state draw_devastator // DEVISTATOR_WEAPON: state reset_hud_weapon_coordinates // for guniqhudid setvarvar hud_temp4 currentweapon shiftvarl hud_temp4 1 setvar hud_tilenum DEVISTATOR setvar hud_temp -1 // flag ifvarg weaponcount 0 { addvar hud_totaltime 1 ifvarvarl weaponcount hud_totaltime { setvar hud_temp 0 switch weaponcount default addlogvar weaponcount // debug break /* case 0 case 6 setvar hud_temp 0 break */ case 1 case 5 setvar hud_temp 4 break case 2 case 4 setvar hud_temp 12 break case 3 setvar hud_temp 24 break endswitch setvarvar hud_temp2 weaponcount shiftvarr hud_temp2 2 // sign function: ifvare hud_temp2 0 setvar hud_temp3 0 else ifvarg hud_temp2 0 setvar hud_temp3 1 else ifvarl hud_temp2 0 setvar hud_temp3 -1 ifvarn player[THISACTOR].hbomb_hold_delay 0 { guniqhudid currentweapon setvarvar hud_temp2 hud_temp shiftvarr hud_temp2 1 addvarvar hud_x hud_temp2 addvar hud_x 268 addvarvar hud_y hud_temp addvar hud_y 238 addvarvar hud_tilenum hud_temp3 setvar hud_shade -32 state G_DrawWeaponTile // cleanup /* subvar hud_x 268 subvarvar hud_x hud_temp2 subvar hud_y 238 subvarvar hud_y hud_temp */ state reset_hud_weapon_coordinates subvarvar hud_tilenum hud_temp3 setvarvar hud_shade gs guniqhudid hud_temp4 addvar hud_x 30 addvar hud_y 240 orvar hud_orientation 4 state G_DrawWeaponTile ifvarand hud_orientation 4 xorvar hud_orientation 4 guniqhudid 0 } else { guniqhudid hud_temp4 addvar hud_x 30 setvarvar hud_temp2 hud_temp shiftvarr hud_temp2 1 subvarvar hud_x hud_temp2 addvar hud_y 240 addvarvar hud_y hud_temp addvarvar hud_tilenum hud_temp3 setvar hud_shade -32 orvar hud_orientation 4 state G_DrawWeaponTile // cleanup /* subvar hud_x 30 addvarvar hud_x hud_temp2 subvar hud_y 240 subvarvar hud_y hud_temp */ state reset_hud_weapon_coordinates subvarvar hud_tilenum hud_temp3 setvarvar hud_shade gs ifvarand hud_orientation 4 xorvar hud_orientation 4 guniqhudid currentweapon addvar hud_x 268 addvar hud_y 238 state G_DrawWeaponTile guniqhudid 0 } break } } ifvare hud_temp -1 { guniqhudid currentweapon addvar hud_x 268 addvar hud_y 238 state G_DrawWeaponTile subvar hud_x 268 subvar hud_y 238 guniqhudid hud_temp4 addvar hud_x 30 addvar hud_y 240 orvar hud_orientation 4 state G_DrawWeaponTile ifvarand hud_orientation 4 xorvar hud_orientation 4 guniqhudid 0 } ends state draw_freezer // FREEZE_WEAPON: state reset_hud_weapon_coordinates setvar hud_tilenum FREEZE orvar hud_orientation 512 setvar hud_temp3 0 ifvarg weaponcount 0 { addvar hud_totaltime 1 ifvarvarl weaponcount hud_totaltime { state determine_animation ifvarn hud_temp 1 { displayrand hud_temp andvar hud_temp 3 addvarvar hud_x hud_temp displayrand hud_temp andvar hud_temp 3 addvarvar hud_y hud_temp } guniqhudid 0 addvar hud_x 210 addvar hud_y 277 // 16 + 261 addvar hud_tilenum 2 setvar hud_shade -32 state G_DrawWeaponTile guniqhudid currentweapon subvar hud_y 26 // relative setvarvar hud_temp weaponcount modvar hud_temp 6 divvar hud_temp 2 addvar hud_tilenum 1 addvarvar hud_tilenum hud_temp state G_DrawWeaponTile guniqhudid 0 setvar hud_temp3 1 } } ifvare hud_temp3 0 { guniqhudid currentweapon addvar hud_x 210 addvar hud_y 261 state G_DrawWeaponTile guniqhudid 0 } ifvarand hud_orientation 512 xorvar hud_orientation 512 ends state draw_expander // GROW_WEAPON: state reset_hud_weapon_coordinates addvar hud_x 28 addvar hud_y 18 setvarvar hud_temp4 hud_pal setvar hud_pal 2 setvarvar hud_temp3 currentweapon shiftvarl hud_temp3 1 setvar hud_temp2 0 ifvarg weaponcount 0 { ifvarvarl weaponcount hud_totaltime { state determine_animation ifvarn hud_temp 1 { displayrand hud_temp andvar hud_temp 3 addvarvar hud_x hud_temp displayrand hud_temp andvar hud_temp 3 subvarvar hud_y hud_temp } addvar hud_x 184 addvar hud_y 240 setvarvar hud_tilenum weaponcount andvar hud_tilenum 3 addvar hud_tilenum SHRINKER addvar hud_tilenum 3 setvar hud_shade -32 guniqhudid hud_temp3 state G_DrawWeaponTile_crystal guniqhudid currentweapon addvar hud_x 4 setvar hud_tilenum SHRINKER subvar hud_tilenum 1 setvarvar hud_shade gs setvarvar hud_pal hud_temp4 state G_DrawWeaponTile guniqhudid 0 setvar hud_temp2 1 } } ifvare hud_temp2 0 { addvar hud_x 184 addvar hud_y 240 setvar hud_tilenum SHRINKER addvar hud_tilenum 2 getplayer[THISACTOR].random_club_frame hud_shade sin hud_shade hud_shade shiftvarr hud_shade 10 mulvar hud_shade -1 addvar hud_shade 16 guniqhudid hud_temp3 state G_DrawWeaponTile_crystal guniqhudid currentweapon addvar hud_x 4 setvar hud_tilenum SHRINKER subvar hud_tilenum 2 setvarvar hud_shade gs setvarvar hud_pal hud_temp4 state G_DrawWeaponTile guniqhudid 0 } ends state draw_shrinker // SHRINKER_WEAPON: state reset_hud_weapon_coordinates addvar hud_x 28 addvar hud_y 18 setvarvar hud_temp4 hud_pal setvar hud_pal 0 setvarvar hud_temp3 currentweapon shiftvarl hud_temp3 1 setvar hud_temp2 0 ifvarg weaponcount 0 { ifvarvarl weaponcount hud_totaltime { state determine_animation ifvarn hud_temp 1 { displayrand hud_temp andvar hud_temp 3 addvarvar hud_x hud_temp displayrand hud_temp andvar hud_temp 3 subvarvar hud_y hud_temp } addvar hud_x 184 addvar hud_y 240 setvarvar hud_tilenum weaponcount andvar hud_tilenum 3 addvar hud_tilenum SHRINKER addvar hud_tilenum 3 setvar hud_shade -32 guniqhudid hud_temp3 state G_DrawWeaponTile_crystal guniqhudid currentweapon addvar hud_x 4 setvar hud_tilenum SHRINKER addvar hud_tilenum 1 setvarvar hud_shade gs setvarvar hud_pal hud_temp4 state G_DrawWeaponTile guniqhudid 0 setvar hud_temp2 1 } } ifvare hud_temp2 0 { addvar hud_x 184 addvar hud_y 240 setvar hud_tilenum SHRINKER addvar hud_tilenum 2 getplayer[THISACTOR].random_club_frame hud_shade sin hud_shade hud_shade shiftvarr hud_shade 10 mulvar hud_shade -1 addvar hud_shade 16 guniqhudid hud_temp3 state G_DrawWeaponTile_crystal guniqhudid currentweapon addvar hud_x 4 setvar hud_tilenum SHRINKER setvarvar hud_shade gs setvarvar hud_pal hud_temp4 state G_DrawWeaponTile guniqhudid 0 } ends // framework onevent EVENT_DISPLAYWEAPON // P_DisplayWeapon setvar RETURN -1 getplayer[THISACTOR].weapon_pos weapon_pos getuserdef[THISACTOR].weaponscale weaponscale getplayer[THISACTOR].i playerid getuserdef[THISACTOR].drawweapon hud_temp ifvare hud_temp 2 // weapon icons { setvar hud_tilenum -1 switch currentweapon case PISTOL_WEAPON setvar hud_tilenum FIRSTGUNSPRITE break case CHAINGUN_WEAPON setvar hud_tilenum CHAINGUNSPRITE break case RPG_WEAPON setvar hud_tilenum RPGSPRITE break case FREEZE_WEAPON setvar hud_tilenum FREEZESPRITE break case SHRINKER_WEAPON setvar hud_tilenum SHRINKERSPRITE break case GROW_WEAPON setvar hud_tilenum GROWSPRITEICON break case DEVISTATOR_WEAPON setvar hud_tilenum DEVISTATORSPRITE break case TRIPBOMB_WEAPON setvar hud_tilenum TRIPBOMBSPRITE break case HANDREMOTE_WEAPON case HANDBOMB_WEAPON setvar hud_tilenum HEAVYHBOMB break case SHOTGUN_WEAPON setvar hud_tilenum SHOTGUNSPRITE break case KNEE_WEAPON break default addlogvar currentweapon break endswitch ifvarn hud_tilenum -1 { setvar hud_x 160 setvarvar hud_y weapon_pos mulvarvar hud_y weapon_pos addvar hud_y 180 setvar hud_scale 65536 getuserdef[THISACTOR].statusbarscale hud_temp2 mulvarvar hud_scale hud_temp2 divvar hud_scale 100 rotatesprite hud_x hud_y hud_scale 0 hud_tilenum 0 0 2 windowx1 windowy1 windowx2 windowy2 } } ifvarn hud_temp 1 break // If we are not displaying the actual HUD weapons, stop processing. // these gamevars can get changed in the states up above, so reset them now. setvar hud_scale 65536 setvar hud_orientation 0 setvar hud_angle 0 setvarvar hud_shade gs state draw_quick_kick // cleanup setvar hud_orientation 0 setvar hud_angle 0 guniqhudid 0 getplayer[THISACTOR].hudpal hud_pal getactor[playerid].xrepeat hud_temp ifvarl hud_temp 40 state draw_shrunk_fists else { switch currentweapon case KNEE_WEAPON setvarvar hud_totaltime WEAPON0_TOTALTIME state draw_kick break case TRIPBOMB_WEAPON setvarvar hud_totaltime WEAPON8_TOTALTIME state draw_tripbomb break case RPG_WEAPON setvarvar hud_totaltime WEAPON4_TOTALTIME state draw_rpg break case SHOTGUN_WEAPON setvarvar hud_totaltime WEAPON2_TOTALTIME state draw_shotgun break case CHAINGUN_WEAPON setvarvar hud_temp4 WEAPON3_FIREDELAY setvarvar hud_totaltime WEAPON3_TOTALTIME state draw_chaingun break case PISTOL_WEAPON setvarvar hud_temp3 WEAPON1_RELOAD setvarvar hud_temp4 WEAPON1_FIREDELAY setvarvar hud_totaltime WEAPON1_TOTALTIME state draw_pistol break case HANDBOMB_WEAPON setvarvar hud_totaltime WEAPON5_TOTALTIME state draw_pipebomb break case HANDREMOTE_WEAPON setvarvar hud_totaltime WEAPON10_TOTALTIME state draw_detonator break case DEVISTATOR_WEAPON setvarvar hud_totaltime WEAPON7_TOTALTIME state draw_devastator break case FREEZE_WEAPON setvarvar hud_totaltime WEAPON9_TOTALTIME state draw_freezer break case GROW_WEAPON setvarvar hud_totaltime WEAPON11_TOTALTIME state draw_expander break case SHRINKER_WEAPON setvarvar hud_totaltime WEAPON6_TOTALTIME state draw_shrinker break default addlogvar currentweapon break endswitch // cleanup setvar hud_orientation 0 setvar hud_angle 0 guniqhudid 0 } endevent