Skip to content

Commit 5ac1a12

Browse files
gruebiteBrettDong
andauthored
Update monster deaths to return nullptr (#54632)
Fixes an issue when a corpse can't be created, which should return a nullptr, not a null item. fixes #53785, fixes #54603 Co-authored-by: Binrui Dong <[email protected]>
1 parent d0deb00 commit 5ac1a12

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/mondeath.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,12 @@ item *mdeath::normal( monster &z )
8181
if( pulverized ) {
8282
return splatter( z );
8383
} else {
84-
return make_mon_corpse( z, static_cast<int>( std::floor( corpse_damage * itype::damage_scale ) ) );
84+
const float damage = std::floor( corpse_damage * itype::damage_scale );
85+
item *corpse = make_mon_corpse( z, static_cast<int>( damage ) );
86+
if( corpse->is_null() ) {
87+
return nullptr;
88+
}
89+
return corpse;
8590
}
8691
}
8792
return nullptr;
@@ -187,6 +192,9 @@ item *mdeath::splatter( monster &z )
187192
}
188193
// add corpse with gib flag
189194
item corpse = item::make_corpse( z.type->id, calendar::turn, z.unique_name, z.get_upgrade_time() );
195+
if( corpse.is_null() ) {
196+
return nullptr;
197+
}
190198
// Set corpse to damage that aligns with being pulped
191199
corpse.set_damage( 4000 );
192200
corpse.set_flag( STATIC( flag_id( "GIBBED" ) ) );

0 commit comments

Comments
 (0)