Wallbuster visibly shows fired rounds when reloading.

This commit is contained in:
Mari the Deer 2020-06-18 19:49:28 +02:00
commit 5f663e2380
3 changed files with 94 additions and 4 deletions

View file

@ -1,2 +1,2 @@
[default]
SWWM_MODVER="\cxSWWM GZ\c- r355 (Wed 17 Jun 08:19:40 CEST 2020)";
SWWM_MODVER="\cxSWWM GZ\c- r356 (Thu 18 Jun 19:49:28 CEST 2020)";

View file

@ -250,6 +250,7 @@ Model "Wallbuster"
Offset 0 2 0
Scale -0.005 0.0025 0.005
////// Unfired
//// Shell0
SurfaceSkin 2 4 "Shell_Normal.png"
// Detach
@ -394,8 +395,77 @@ Model "Wallbuster"
FrameIndex XZWE R 2 127
FrameIndex XZWE S 2 128
FrameIndex XZWE T 2 129
// TODO difference between spent/unspent if I actually
// decide to make the textures visually different
////// Fired
//// Shell0
SurfaceSkin 2 8 ""
SurfaceSkin 2 4 "Shell_Normal_Used.png"
// Detach
FrameIndex XZWF L 2 91
FrameIndex XZWF M 2 92
FrameIndex XZWF N 2 93
FrameIndex XZWF O 2 94
FrameIndex XZWF P 2 95
FrameIndex XZWF Q 2 96
FrameIndex XZWF R 2 97
FrameIndex XZWF S 2 98
FrameIndex XZWF T 2 99
FrameIndex XZWF U 2 100
//// Shell1
SurfaceSkin 2 4 ""
SurfaceSkin 2 5 "Shell_Normal_Used.png"
// Detach
FrameIndex XZWF V 2 91
FrameIndex XZWF W 2 92
FrameIndex XZWF X 2 93
FrameIndex XZWF Y 2 94
FrameIndex XZWF Z 2 95
FrameIndex XZWG A 2 96
FrameIndex XZWG B 2 97
FrameIndex XZWG C 2 98
FrameIndex XZWG D 2 99
FrameIndex XZWG E 2 100
//// Shell2
SurfaceSkin 2 5 ""
SurfaceSkin 2 6 "Shell_Normal_Used.png"
// Detach
FrameIndex XZWG F 2 91
FrameIndex XZWG G 2 92
FrameIndex XZWG H 2 93
FrameIndex XZWG I 2 94
FrameIndex XZWG J 2 95
FrameIndex XZWG K 2 96
FrameIndex XZWG L 2 97
FrameIndex XZWG M 2 98
FrameIndex XZWG N 2 99
FrameIndex XZWG O 2 100
//// Shell3
SurfaceSkin 2 6 ""
SurfaceSkin 2 7 "Shell_Normal_Used.png"
// Detach
FrameIndex XZWG P 2 91
FrameIndex XZWG Q 2 92
FrameIndex XZWG R 2 93
FrameIndex XZWG S 2 94
FrameIndex XZWG T 2 95
FrameIndex XZWG U 2 96
FrameIndex XZWG V 2 97
FrameIndex XZWG W 2 98
FrameIndex XZWG X 2 99
FrameIndex XZWG Y 2 100
//// Shell4
SurfaceSkin 2 7 ""
SurfaceSkin 2 8 "Shell_Normal_Used.png"
// Detach
FrameIndex XZWG Z 2 91
FrameIndex XZWH A 2 92
FrameIndex XZWH B 2 93
FrameIndex XZWH C 2 94
FrameIndex XZWH D 2 95
FrameIndex XZWH E 2 96
FrameIndex XZWH F 2 97
FrameIndex XZWH G 2 98
FrameIndex XZWH H 2 99
FrameIndex XZWH I 2 100
}
Model "Wallbuster"

View file

@ -997,6 +997,7 @@ Class Wallbuster : SWWMWeapon
action void A_StartDetachOverlays()
{
static const statelabel shells[] = {"DetachShell0","DetachShell1","DetachShell2","DetachShell3","DetachShell4"};
static const statelabel shellsfired[] = {"DetachShellF0","DetachShellF1","DetachShellF2","DetachShellF3","DetachShellF4"};
for ( int i=0; i<5; i++ )
{
// get physical index
@ -1011,7 +1012,9 @@ Class Wallbuster : SWWMWeapon
while ( gidx > 4 ) gidx -= 5;
idx = gidx+group*5;
if ( !invoker.loaded[idx] ) continue;
A_Overlay(PSP_WEAPON+1+i,shells[i]);
if ( invoker.fired[idx] )
A_Overlay(PSP_WEAPON+1+i,shellsfired[i]);
else A_Overlay(PSP_WEAPON+1+i,shells[i]);
}
A_StartSound("wallbuster/meleestart",CHAN_WEAPON,CHANF_OVERLAP);
}
@ -1328,6 +1331,23 @@ Class Wallbuster : SWWMWeapon
XZWD WXYZ 1;
XZWE ABCDEF 1;
Stop;
DetachShellF0:
XZWF LMNOPQRSTU 1;
Stop;
DetachShellF1:
XZWF VWXYZ 1;
XZWG ABCDE 1;
Stop;
DetachShellF2:
XZWG FGHIJKLMNO 1;
Stop;
DetachShellF3:
XZWG PQRSTUVWXY 1;
Stop;
DetachShellF4:
XZWG Z 1;
XZWH ABCDEFGHI 1;
Stop;
Attach:
XZW6 EF 2;
XZW6 G 1 A_StartAttachOverlays();