From b3e4aa830563e06f3b3af3449300174333e2a3b2 Mon Sep 17 00:00:00 2001 From: Wanne Date: Tue, 26 Sep 2006 19:17:09 +0000 Subject: [PATCH] - bugfix: CtH calculation (shows up nearly 0% next to an enemy), when mercs spots an enemy after climbing up/down a rooftop - bugfix: Added Pulmu's weight calculation fix git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@563 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- JA2.suo | Bin 197632 -> 197632 bytes Tactical/Items.cpp | 3 ++- Tactical/Weapons.cpp | 1 + TileEngine/worldman.cpp | 3 ++- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/JA2.suo b/JA2.suo index 06e9935211ce9dc15676588ad8a5cac75db803f6..32cc1eaa72cdc2210bd6f9b6b90039e4dcc01477 100644 GIT binary patch delta 2010 zcmeHIUrd`-6hFVO?I@+Cg>EoN2Q6`oDPyQ}GAEI#TP8B7fl`uTMuABQ3`obcbi@^X zV9AV`e(HHK$}}-1qJuT@Q|ANIsPn;Pn#Gv-C)pB>F-Cnb(@mkC+m_I|rSB%* z@44sPd(Sz)`^Asi<45gt!)6D4U;FjT7e9uHq$MWI51O~Du1hdT_feQaG(vr}U&bE6 z7`4;5%thqePNOtT{jzSqjEPFbLDD*5(t1gc*<-7Y$=p|6iL3TPdOi2uO|ero!_My9@&2b5J}U)a}l7iMyQdnKh@Dxa_Vom)SI;0)buN5EKfQlF8&! z0@WYlRC%;s+iFY1np;D6UO`4B>dVsqL-1#2?yAVY1b+(_)tn$HAdU1BXUY<5XI-7p z^^LuimM3NQIo_jT?|QY-tPI~2yd^j(m>0-&@|4JgU}-*dJ6CD#uADe=&=Cqkb*U zgJ(Lm2KJP}#kK{wjINu}WXg}a)6S#DiA~s7%}oKk!;t`<;KB}6t6noV2hjlVXaIXu zzgzG5sES_?qKln_Sk0?@@nVt6vzK;B7A$Fp&(C8U7vGAw5%0oTE4%6tVSg=(x%GEc zY}hVoP)*6bB1;9JZn{_Qtuom!eWEs&Tl|`r?edZzZ}TrM*tqI8Tv+kwXv}z2vebB{ z7I|=ZRHaB$@)e%4Lg(XG(9KVOiyDWgDx(y6%fFScW|T^%ltcQ(pVu3UVVF=Lc5_3G z+S%bo&B*%+A^5x+rD%|)QN@v`ic?wxbnmVfo*2MWmKJKGc3y~KA1^)vr_Yz$v}wiE zF)Ab)li&=}K^o6;QI*?8EA)zQS}@5wIwdEYhq0S?2T|gDOjsC6#rlBaDtnJ0%(aJ6 zU|qf)ANvtM@Nbvk_fC3L%3?%{*-L&&>;W26 zr+&Cj<@-C+XRs+MROdRqMnbEZ3vzmWN?*h00=OxC11Tk!etgL6?xy=?lRgPbzsMbm zJA7^mAwGNr4&R1c&WU=!pC7{JZ5Dz$e}5`lrSzrg+4R}g2B{^I?qZO+tb+Ges z*|;LNWmZ}_z6mADvNKf>?#k;e|F5$Dc$M9dfE(2h@!IF!OAn;@qJE1bLQ46iQ5}VO pA&Ox7xv06mIU delta 2756 zcmbVOT})GF7=GW=76IE*D72tK+WE%_WmtaZ55Xc{D8q@$U&IWm6z#@nr67}$(PbBq zuwA%=e!E(57v2n~vlrc!pc~7Q&BWd8(y;7i+09H$+~$<-`A!{_R+^2kd3w(I&inJd z&->GcCyn7rN;J*ABZCgcNN{l#w>6h_yV{ANJ~p!diV1+J+sqGXTZ-v@H7OR210o5 zA_o`>Nxq^^1DCMJ08Ol3?b}WdboUs<$6`)}WG>{I+*h1EQ&*ggQ_%*=4wi%8r7Ch$ zgYaZpLcJ_vGp7atc`OSl!#ZCj8HYW#5)c3ELK(N*nfdn?B zfZbX_=cpZt?*&x>I*MbyDeipA-e^xI&*X>}D_f$LQhvx+3b}=wqQ?sPMvk~U$DPs6 zGWO`QMy&9NH4?q*;_e;M`3&~3+OpslJ#E}1f-W`-OBEoL%N1= zEd*qOR+oI7tXjMa(h;OmmZoe2KQ(FvKM4H+=pV-07JLG*;8(Ba+ts_3HsNlCYj`>( zX50Cs_-qS@qv1~eE>m4JqCsb2E=!-p?;<2e|BEv&n}k5hoDI z7K=e{6D31za_&rZomlUmuo`s0m^$v;B}$n+Ng?S%bXLrVxLf?<=Ui8*LQ-3<7oA+| zo@;n1`G-4wP1M#N|xcO=M-5l<|0ZKHp$VMH?WPg)0N3(L7VvXkHhg?yBmV z+EtdV=`A-QRi#Lkc)tSGJDb6dctn==&Wqu0MyF0fYcRCCQtqM~~v!!>JjcL4akE;)laE^0(dhhkg>RK4@wQ!-d(e2!kUVZOc>UpfqrLMB&-(t+Bm1&Y1$0p3d zN6o7`T+B`Iu&nN78>=Q#vJC~l=P5S+^OV?DQyW_q?1E*cZo!h+?duIT*^)y4KiFg& Y^3TiqgT+X^JkPr)KyY+!LTMQL2S_1FIRF3v diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index 2927e8c3..8b0fe68f 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -2234,7 +2234,8 @@ UINT8 CalculateObjectWeight( OBJECTTYPE *pObject ) } else { - double weight = (double)uiMinWeight + (( (double)pObject->ubGunShotsLeft / (double)Weapon[pObject->usItem].ubMagSize) * ( (double)Item[ pObject->usGunAmmoItem].ubWeight - (double)uiMinWeight )) + 0.5; //Pulmu: Account for number of rounds left. + // WANNE: Added Pulmu's weight fix + double weight = (double)uiMinWeight + (( (double)pObject->ubGunShotsLeft / Magazine[Item[pObject->usGunAmmoItem].ubClassIndex].ubMagSize ) * ( (double)Item[ pObject->usGunAmmoItem].ubWeight - (double)uiMinWeight )) + 0.5; //Pulmu: Account for number of rounds left. usWeight += (UINT16)weight; } } diff --git a/Tactical/Weapons.cpp b/Tactical/Weapons.cpp index 0281d179..d4ab9532 100644 --- a/Tactical/Weapons.cpp +++ b/Tactical/Weapons.cpp @@ -3526,6 +3526,7 @@ UINT32 CalcChanceToHitGun(SOLDIERTYPE *pSoldier, UINT16 sGridNo, UINT8 ubAimTime iSightRange = SoldierToBodyPartLineOfSightTest( pSoldier, sGridNo, pSoldier->bTargetLevel, pSoldier->bAimShotLocation, (UINT8) (MaxDistanceVisible() * 2), TRUE ); } + // WANNE NEW: if (iSightRange == -1) // didn't do a bodypart-based test { iSightRange = SoldierTo3DLocationLineOfSightTest( pSoldier, sGridNo, pSoldier->bTargetLevel, pSoldier->bTargetCubeLevel, (UINT8) (MaxDistanceVisible() * 2), TRUE ); diff --git a/TileEngine/worldman.cpp b/TileEngine/worldman.cpp index cf857b14..6e2d978b 100644 --- a/TileEngine/worldman.cpp +++ b/TileEngine/worldman.cpp @@ -3386,7 +3386,8 @@ UINT8 WhoIsThere2( INT16 sGridNo, INT8 bLevel ) // person must either have their pSoldier->sGridNo here or be non-passable if ( (pStructure->fFlags & STRUCTURE_PERSON) && ( !(pStructure->fFlags & STRUCTURE_PASSABLE) || MercPtrs[ pStructure->usStructureID ]->sGridNo == sGridNo) ) { - if ( ( bLevel == 0 && pStructure->sCubeOffset == 0 ) || (bLevel > 0 && pStructure->sCubeOffset > 0) ) + // WANNE NEW: CTH Fix + //if ( ( bLevel == 0 && pStructure->sCubeOffset == 0 ) || (bLevel > 0 && pStructure->sCubeOffset > 0) ) { // found a person, on the right level! // structure ID and merc ID are identical for merc structures