Bug: Some VIP Flags on Mob are being skipped.
Danger: Major - VIP Flags won't load properly.
Found by: Remcon
Fixed by: Remcon
---
db.c, fread_fuss_mobile
Find:
if( !str_cmp( word, "VIPFlags" ) )
{
const char *vip = fread_flagstring( fp );
while( vip[0] != '\0' )
{
vip = one_argument( vip, flag );
value = get_vip_flag( flag );
if( value < 0 || value > 31 )
bug( "Unknown VIP flag: %s", flag );
else
SET_BIT( pMobIndex->vip_flags, 1 << value );
}
break;
}
Replace with:
if( !str_cmp( word, "VIPFlags" ) )
{
const char *vip = fread_flagstring( fp );
while( vip[0] != '\0' )
{
vip = one_argument( vip, flag );
if( !str_cmp( flag, "yavin" ) || !str_cmp( flag, "iv" ) )
value = get_vip_flag( "yavin_iv" );
else if( !str_cmp( flag, "mon" ) || !str_cmp( flag, "calamari" ) )
value = get_vip_flag( "mon_calamari" );
else if( !str_cmp( flag, "ord" ) || !str_cmp( flag, "mantell" ) )
value = get_vip_flag( "ord_mantell" );
else if( !str_cmp( flag, "nal" ) || !str_cmp( flag, "hutta" ) )
value = get_vip_flag( "nal_hutta" );
else
value = get_vip_flag( flag );
if( value < 0 || value > 31 )
bug( "Unknown VIP flag: %s", flag );
else
SET_BIT( pMobIndex->vip_flags, 1 << value );
}
break;
}
build.c
Find:
const char *const planet_flags[] = {
"coruscant", "yavin iv", "tatooine", "kashyyyk", "mon calamari",
"endor", "ord mantell", "nal hutta", "corellia", "bakura", "p10", "p11",
"p12", "p13", "p14", "p15", "p16", "p17", "p18", "p19", "p20", "p21",
"p22", "p23", "p24", "p25", "p26", "p27", "p28", "p29", "p30", "p31"
};
Replace with:
const char *const planet_flags[] = {
"coruscant", "yavin_iv", "tatooine", "kashyyyk", "mon_calamari",
"endor", "ord_mantell", "nal_hutta", "corellia", "bakura", "p10", "p11",
"p12", "p13", "p14", "p15", "p16", "p17", "p18", "p19", "p20", "p21",
"p22", "p23", "p24", "p25", "p26", "p27", "p28", "p29", "p30", "p31"
};
Because the flags were set up with spaces in the name, one_argument was chopping them in half, and thus, they weren't being set properly.