mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Skinning a bloodcat yields a bloodcat pelt
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8659 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -2029,6 +2029,9 @@ BOOLEAN IsValidStripCorpse( ROTTING_CORPSE *pCorpse )
|
|||||||
if ( pCorpse->def.ubType == ROTTING_STAGE2 || ((pCorpse->def.usFlags & ROTTING_CORPSE_NO_VEST) && (pCorpse->def.usFlags & ROTTING_CORPSE_NO_PANTS)) )
|
if ( pCorpse->def.ubType == ROTTING_STAGE2 || ((pCorpse->def.usFlags & ROTTING_CORPSE_NO_VEST) && (pCorpse->def.usFlags & ROTTING_CORPSE_NO_PANTS)) )
|
||||||
return( FALSE );
|
return( FALSE );
|
||||||
|
|
||||||
|
if ( pCorpse->def.ubType == BLOODCAT_DEAD )
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
return( CorpseOkToDress(pCorpse) );
|
return( CorpseOkToDress(pCorpse) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2043,31 +2046,53 @@ BOOLEAN StripCorpse( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel )
|
|||||||
// can this thing be stripped?
|
// can this thing be stripped?
|
||||||
if ( IsValidStripCorpse( pCorpse ) )
|
if ( IsValidStripCorpse( pCorpse ) )
|
||||||
{
|
{
|
||||||
// determine which clothes to spawn
|
if ( pCorpse->def.ubType == BLOODCAT_DEAD )
|
||||||
if ( !(pCorpse->def.usFlags & ROTTING_CORPSE_NO_VEST) )
|
|
||||||
{
|
{
|
||||||
UINT16 vestitem = 0;
|
UINT16 peltitem = 232;
|
||||||
if ( GetFirstClothesItemWithSpecificData(&vestitem, pCorpse->def.VestPal, "blank") )
|
if ( !HasItemFlag( peltitem, SKIN_BLOODCAT ) )
|
||||||
{
|
GetFirstItemWithFlag( &peltitem, SKIN_BLOODCAT );
|
||||||
CreateItem( vestitem, 100, &gTempObject );
|
|
||||||
if ( !AutoPlaceObject( pSoldier, &gTempObject, FALSE ) )
|
|
||||||
AddItemToPool( pSoldier->sGridNo, &gTempObject, VISIBLE, bLevel, 0, -1 );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_NO_CLOTHES_ITEM] );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( !(pCorpse->def.usFlags & ROTTING_CORPSE_NO_PANTS) )
|
// status depends on whether the cat pellet has holes in it, and whether we might have a bit of knowledge about skinning
|
||||||
|
INT16 status = 70;
|
||||||
|
if ( ( pCorpse->def.usFlags & ROTTING_CORPSE_NO_VEST ) )
|
||||||
|
status -= 40;
|
||||||
|
if ( gGameOptions.fNewTraitSystem && HAS_SKILL_TRAIT( pSoldier, MELEE_NT ) )
|
||||||
|
status += 5;
|
||||||
|
if ( gGameOptions.fNewTraitSystem && HAS_SKILL_TRAIT( pSoldier, DOCTOR_NT ) )
|
||||||
|
status += 5;
|
||||||
|
|
||||||
|
CreateItem( peltitem, status + Random(20), &gTempObject );
|
||||||
|
if ( !AutoPlaceObject( pSoldier, &gTempObject, FALSE ) )
|
||||||
|
AddItemToPool( pSoldier->sGridNo, &gTempObject, VISIBLE, bLevel, 0, -1 );
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
UINT16 pantsitem = 0;
|
// determine which clothes to spawn
|
||||||
if ( GetFirstClothesItemWithSpecificData(&pantsitem, "blank", pCorpse->def.PantsPal) )
|
if ( !( pCorpse->def.usFlags & ROTTING_CORPSE_NO_VEST ) )
|
||||||
{
|
{
|
||||||
CreateItem( pantsitem, 100, &gTempObject );
|
UINT16 vestitem = 0;
|
||||||
if ( !AutoPlaceObject( pSoldier, &gTempObject, FALSE ) )
|
if ( GetFirstClothesItemWithSpecificData( &vestitem, pCorpse->def.VestPal, "blank" ) )
|
||||||
AddItemToPool( pSoldier->sGridNo, &gTempObject, VISIBLE, bLevel, 0, -1 );
|
{
|
||||||
|
CreateItem( vestitem, 100, &gTempObject );
|
||||||
|
if ( !AutoPlaceObject( pSoldier, &gTempObject, FALSE ) )
|
||||||
|
AddItemToPool( pSoldier->sGridNo, &gTempObject, VISIBLE, bLevel, 0, -1 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_NO_CLOTHES_ITEM] );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !( pCorpse->def.usFlags & ROTTING_CORPSE_NO_PANTS ) )
|
||||||
|
{
|
||||||
|
UINT16 pantsitem = 0;
|
||||||
|
if ( GetFirstClothesItemWithSpecificData( &pantsitem, "blank", pCorpse->def.PantsPal ) )
|
||||||
|
{
|
||||||
|
CreateItem( pantsitem, 100, &gTempObject );
|
||||||
|
if ( !AutoPlaceObject( pSoldier, &gTempObject, FALSE ) )
|
||||||
|
AddItemToPool( pSoldier->sGridNo, &gTempObject, VISIBLE, bLevel, 0, -1 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_NO_CLOTHES_ITEM] );
|
||||||
}
|
}
|
||||||
else
|
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_NO_CLOTHES_ITEM] );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// we took the clothes, mark this
|
// we took the clothes, mark this
|
||||||
|
|||||||
@@ -6288,6 +6288,9 @@ void SOLDIERTYPE::EVENT_SoldierGotHit( UINT16 usWeaponIndex, INT16 sDamage, INT1
|
|||||||
|
|
||||||
case BLOODCAT:
|
case BLOODCAT:
|
||||||
this->EVENT_InitNewSoldierAnim( BLOODCAT_HIT, 0, FALSE );
|
this->EVENT_InitNewSoldierAnim( BLOODCAT_HIT, 0, FALSE );
|
||||||
|
|
||||||
|
if ( Item[usWeaponIndex].usItemClass & ( IC_EXPLOSV | IC_BOBBY_GUN ) )
|
||||||
|
this->usSoldierFlagMask |= SOLDIER_DAMAGED_VEST;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user