From 7d3ae38f8f964b7b782d132c8751215f31b8eb7a Mon Sep 17 00:00:00 2001 From: blondie7575 Date: Sat, 24 Jul 2021 14:41:48 -0700 Subject: [PATCH] Added option for weapon deployment delay --- equates.s | 1 + fan.s | 14 ++++++++++++-- gscats.2mg | Bin 819264 -> 819264 bytes projectile.s | 3 ++- utility.s | 21 +++++++++++++++++++++ 5 files changed, 36 insertions(+), 3 deletions(-) diff --git a/equates.s b/equates.s index 557cad0..2d4b7dc 100644 --- a/equates.s +++ b/equates.s @@ -70,6 +70,7 @@ JD_OWNER = 146 JD_FACING = 148 JD_SCRATCH = 150 JD_AGE = 152 +JD_DEPLOYDELAY = 154 MAXPROJECTILES = 3 diff --git a/fan.s b/fan.s index 1b6012a..f335c02 100644 --- a/fan.s +++ b/fan.s @@ -8,7 +8,7 @@ FANRANGE = 100 ; In pixels FANMAGNITUDE = $20 ; 12.4 fixed point speed delta, in pixels FAN_AGE = 4 - + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; deployFan ; @@ -27,6 +27,9 @@ deployFan: sta projectileData+JD_VX,y sta projectileData+JD_VY,y + lda #1 + sta projectileData+JD_DEPLOYDELAY,y ; Let player admire new fan + RESTORE_AY rts @@ -81,7 +84,7 @@ updateFan: sec sbc #GAMEOBJECTHEIGHT sta gameObjectPool+GO_POSY,x - + updateFanDone: RESTORE_AXY rts @@ -148,6 +151,13 @@ renderFan: lda #14 jsr renderGameObject + ; Do deployment delay after first render + lda projectileData+JD_DEPLOYDELAY,y + beq renderFanDone + jsr delayLong + lda #0 + sta projectileData+JD_DEPLOYDELAY,y + renderFanDone: RESTORE_AXY rts diff --git a/gscats.2mg b/gscats.2mg index d6cc4d4dc19c9c061a39db202afde68b4f1acd7c..80473173ca5b7bb1bb8a42007ea93ef4ffc56143 100644 GIT binary patch delta 2560 zcmZuze{2)?760D(2mTeu0WzJ_bo!#U5LT4kShYo+wgv`UC};yjBj%Q3`U~3${`zhg z$G$}IiN*|}UB|>!V_~wiQkooaEB|cfw5E%Yrq)&Iylz4aRVY$R6=>QX8d{bBxxMc> zsa&y>zWKg;e!t)6y~~ucaZ1^EevQlD7DVV{{L{z9LrA?M8Qp&Ms$}f-s~<_2=_`LQ#yrR{!-d&5n5UR83Y*87j%JZ8#G+kS zBR|NeH0y~6IjW?OK{$?;Y>Oiks2roYKUUlJU^|rhaD^KlZ-U&R+B_2*Z zmgq`E6N8CTVk$9{SlzRwC)0DjXSQcUZ>sk~uk%p(?2F6~9fh2WbqCgxyjw#Ef5B)! zDg4&OKAAhvk57g0#YX%@BR)znX7wRb?b8^fN<<$dAy#qV-AO%0cnAJ#Qcn=mfftf` zFTMRlPtv=U=pr$__-L>s68u&J{*kOp#0=m^Gx$Ou1{Y`h@pEZCO-y$wP4JzJE>nAN zC-v{8i0RSiKW2fVUdZ|48gb3=Q6|$X*-b`BX~^^e3w!r3UbP=Qidqk zsJoX)6d!KHz90mw4ijHK$;D40^$3BYXqH7a|J6X#fYi?RQw@=nB+?cI+h_2X0l2_) zDM4zCaKjR#7aS$YxlCdE3RcSvlgdtH{<{Spuo%6_)8IdO9G=?iQY04v8At_NK!EQW z0UR(^}{L;fV=h7sKP*()dR?G;R5-8pk z01w4Qp@>BATMUV^4PYZER-EYkUc)U`_Zn$Ib?h=Sg6i6(!7Qw>|9W@*0rLJ`Lj@so z1N_)RErJQRh`-;DzuP@+S?20v#efLvr}uS(M8}O>2%X;F4fu`Xb^Xem;Sn!Ed%pZL z^q9W^a{2INTIjeQ4mr13R!ijtbp9WPPpk$y00B2JDlQ1hMGokAjs6qN21IDCF#=-V z&1w6(UvvY&g9x*`jgSbCDepxD}1^tRda|DBKu^1G8JxBm+MUQBDXx=_ip|b@y zNYjc#w4h;AcLn{LRAj}-gxw3@grP{LS5^=9VT2T?jI(`O4s1A=0*&Y&*@{#d){TBu zf`!n2AnyTw-i>cQ10Aa|7oV?VqGk2h5js`#1O_JXw+P0(sEkg97kBtq?Y}8MNxfD9vT>3VgOO2Lq;K6xDsS>E|tOH@HReW-?Q~zZKr_t7HFvLc!tKOr3LQLAS_G#%{_okyro|W z0Wa@9$x(y>S80Hrt0_WfbdW^hg8D$lXO2;e(5)kq=~kcZhlHb#-S03hggn%pxlWm} z4Ra@{;j8%FU36}mHMwxMk!{OW`oCTc&~xlqm#K49rwx7KeU-#95tN<-yME99CS zk`%|}pahe3R5E=qO{Qxs+@i2!VHlFhVH)KlnWeVe7iSJ{%hUw`bp`jyjNydYqF8r| z@KzTA6ebp}Re%xo3*qoZG%R}e`zFJ^~w>=Z!72{S#v!XizA<}YeMrOu%V9> z3Qg?Vm2B|Jv2gKDjbq7p zI~x0dcdfUO;_xD?$PCyVc=sZv=ot9);HTl4PpbSM-#8e{S7m!U!w1uB21lhi`IsFl z-Y?HgccSWYmd3mcjrvU1=4IH6Hnad)(6Qem#N-UefIan&0fQO1f0FOX#e1?n$@4OZ z-Y;OuMXM%oM_vMK>tDdI=>l=SNo%s*(D|5??P-GHn1^Xc$g*BQsJwbT%esEm+0Mdo az;VK%?`}9N;CSG8;rQVA$2;2tyZ;B8r10VZ delta 2546 zcmZuze{36f760BjcKtJPl65*~+4xR{v6iVj!VuQVSlX?SwI)lV&WcRhd7({hC-pa9 zboq6E;2X$*DsDq6s%z@9Zc-Xw$hFZlW=;^%Rsv>;EKd46s;X$DQ&M&9RSdy~hI!v} zT3n5jzP@+w-uHb!@4e4^=hI5dX{BZQQM+f0523#y=f5^>@f~`?-rQ34%%jJjd-3`0 z+qSmv-2PQjL%!Hlak^066KI+G3>+rL6 z_y+`IUXPK|kj5c(57GOGpI2=7n@PQkh&FsGsqZ4D4KFA4FuVUFsduxxgXlfPbm5=X z=6VSJgAYF->wAdl#oQ=DI55>mj1t|!u5`dSPenmbl41ukH;e~@tB28_l43yXKx!8Oy;(aR z5aNf?EF{sE>mpITmoyc5WMZ|K;J*w{^%B!xvBr@cJz?k9ufuLllZn5Zs0n%YfTaG zttrBAPB&o>&-tRa-3n6BE6z-E9iK~8;`w_MT;M%=R%DSZKMhyqaShd3;0IE{F$jR8 zB7g=wS2Ps?G~Jd4gq?%TTa3H_a_p`$L2{N1SdO^iO0l23G3se5+EB>`1j&wiZbeBH zp|%KcFxyTw#hYEA?9F+ay+~z?(8e+?)}ZNb<0>t68zHLNI*oR!+B-Gqjdj+qtMeoT z{7YXEA@d1%*~ENtD0`J+-w6I%c&S`AA4na{en4UWvE5-X39kClv6sU#G!6c2Sox=M zjm|>VZvP&LAg+R0IxrKW!RrBk%?ssnQ*kevK4&b^k~au6S;Z(@qRLqTH0==z>~=`7U-y+oBEL6n^dEdu`6|4(=cH(eM-uPsD4snQ9*95((E$*c^?7NWv@}w$s%2%3TrvIgEdPu z;Da5Ov_SQDr0iuH$y;@R8iXa&C9BU2VT6<#8NWEBrNGA`tpJVaZ(AGLW*9j7v;-qT zcqQ!wecFL<^gwkg%9Za|DWP5!+;1Utv~m(S$m6LYE3TVsZy~kfD68f7jEhu=e_Dn@ z8|PEBh?GS262?mOzyN_bSWiL%#P1Xd@81Tys?C@zj4e>$jb+zPi+&_FM~ut#Ubx+o z>6g__!w@b5fmfm4vhp!h>>kw2$y(l#3J>286;Qs!@OJ!P&cWuJKpAI+c%>&-mUvY9 z2<)N1ERG5w08PCXP2tzoi5okCqb08eYipi4WB2#jr@ReY>@BZPHsABn;ZG6%VsJjgsk9eX6xp*}SN zsbC+Ad-1cE`8vSvce3NmFDolrD08NcZ{#{M7wY)OQ*VsipBpf>g+3dp@@*jzjxZ!p zB+*?wg~Ym<4oUG9PnG@lnO%}%o9U9EvGz!&8=A?qj|Z9*emnp@G819I{>^}`5#@et zDg1@eDgX?rE%f}Tu}Do9BmN?Vrz!-Hi&*p^3yWQoRdkq%c!HmV;54!3Sj59dx4IXm zD9nGD`Yv!R#9c^PX9+fxcC=a3qQQ^S&bBHyMtjCr&ws@^JjN0^)thOp=bQJ{j2#i; zPL#Kx-dT&}HEArO@kqc?eo7j<+k{<`9I;eu^O50X<8f9RE4k!|=CL;D(wMnXh{ch+ zEw8x|xX`7{nR@=QhFMtycqMmw05WwPKDWm*pVadY!T*8v4g7|dIhi@ko|DG|+4+im zLB>1L`1_)LV;Lzn7b<5jRW$JILfk}a1OH$udqw_m|A&E<<&yZ@6Z>Q7l59<3_^EgR^~e+0*-9n8ggt=>9@aer2}It7S7S9oe8@3kK~ jZQu0M*3CRD8>|{wc32Kr>tH!yxnQ|rc_vynd%OM%)dlX@ diff --git a/projectile.s b/projectile.s index 9b1e65e..a680d54 100644 --- a/projectile.s +++ b/projectile.s @@ -26,8 +26,9 @@ projectileData: .word 0 ; Facing (0,1) = (+X,-X) .word 0 ; Scratch space for subclasses .word 0 ; Age (in turns) + .word 0 ; Deployment delay needed? - .repeat 102 + .repeat 100 .byte 0 ; Padding to 256-byte boundary .endrepeat diff --git a/utility.s b/utility.s index f0ed556..6634977 100644 --- a/utility.s +++ b/utility.s @@ -180,3 +180,24 @@ delayShortInner: RESTORE_AXY rts + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; delayLong +; Sleeps for long time (about 1.5 sec, but not calculated as such) +; +delayLong: + SAVE_AXY + + ldy #$03 ; Loop a bit +delayLongOuter: + ldx #$ff +delayLongInner: + jsr delayShort + dex + bne delayLongInner + dey + bne delayLongOuter + + RESTORE_AXY + rts