This commit is contained in:
Christoph Oelckers 2013-08-14 00:32:35 +02:00
commit 42c9b68d47
8 changed files with 24 additions and 4 deletions

View file

@ -338,6 +338,7 @@ enum
MF7_NEVERTARGET = 0x00000001, // can not be targetted at all, even if monster friendliness is considered. MF7_NEVERTARGET = 0x00000001, // can not be targetted at all, even if monster friendliness is considered.
MF7_NOTELESTOMP = 0x00000002, // cannot telefrag under any circumstances (even when set by MAPINFO) MF7_NOTELESTOMP = 0x00000002, // cannot telefrag under any circumstances (even when set by MAPINFO)
MF7_ALWAYSTELEFRAG = 0x00000004, // will unconditionally be telefragged when in the way. Overrides all other settings.
// --- mobj.renderflags --- // --- mobj.renderflags ---

View file

@ -115,6 +115,7 @@ CVAR (Color, am_interlevelcolor, 0xff0000, CVAR_ARCHIVE);
CVAR (Color, am_secretsectorcolor, 0xff00ff, CVAR_ARCHIVE); CVAR (Color, am_secretsectorcolor, 0xff00ff, CVAR_ARCHIVE);
CVAR (Color, am_thingcolor_friend, 0xfcfcfc, CVAR_ARCHIVE); CVAR (Color, am_thingcolor_friend, 0xfcfcfc, CVAR_ARCHIVE);
CVAR (Color, am_thingcolor_monster, 0xfcfcfc, CVAR_ARCHIVE); CVAR (Color, am_thingcolor_monster, 0xfcfcfc, CVAR_ARCHIVE);
CVAR (Color, am_thingcolor_ncmonster, 0xfcfcfc, CVAR_ARCHIVE);
CVAR (Color, am_thingcolor_item, 0xfcfcfc, CVAR_ARCHIVE); CVAR (Color, am_thingcolor_item, 0xfcfcfc, CVAR_ARCHIVE);
CVAR (Color, am_thingcolor_citem, 0xfcfcfc, CVAR_ARCHIVE); CVAR (Color, am_thingcolor_citem, 0xfcfcfc, CVAR_ARCHIVE);
@ -134,6 +135,7 @@ CVAR (Color, am_ovsecretsectorcolor,0x00ffff, CVAR_ARCHIVE);
CVAR (Color, am_ovthingcolor, 0xe88800, CVAR_ARCHIVE); CVAR (Color, am_ovthingcolor, 0xe88800, CVAR_ARCHIVE);
CVAR (Color, am_ovthingcolor_friend, 0xe88800, CVAR_ARCHIVE); CVAR (Color, am_ovthingcolor_friend, 0xe88800, CVAR_ARCHIVE);
CVAR (Color, am_ovthingcolor_monster, 0xe88800, CVAR_ARCHIVE); CVAR (Color, am_ovthingcolor_monster, 0xe88800, CVAR_ARCHIVE);
CVAR (Color, am_ovthingcolor_ncmonster, 0xe88800, CVAR_ARCHIVE);
CVAR (Color, am_ovthingcolor_item, 0xe88800, CVAR_ARCHIVE); CVAR (Color, am_ovthingcolor_item, 0xe88800, CVAR_ARCHIVE);
CVAR (Color, am_ovthingcolor_citem, 0xe88800, CVAR_ARCHIVE); CVAR (Color, am_ovthingcolor_citem, 0xe88800, CVAR_ARCHIVE);
@ -190,6 +192,7 @@ static const char *ColorNames[] = {
"ThingColor_Item", "ThingColor_Item",
"ThingColor_CountItem", "ThingColor_CountItem",
"ThingColor_Monster", "ThingColor_Monster",
"ThingColor_NocountMonster",
"ThingColor_Friend", "ThingColor_Friend",
"SpecialWallColor", "SpecialWallColor",
"SecretWallColor", "SecretWallColor",
@ -219,6 +222,7 @@ struct AMColorset
ThingColor_Item, ThingColor_Item,
ThingColor_CountItem, ThingColor_CountItem,
ThingColor_Monster, ThingColor_Monster,
ThingColor_NocountMonster,
ThingColor_Friend, ThingColor_Friend,
SpecialWallColor, SpecialWallColor,
SecretWallColor, SecretWallColor,
@ -318,6 +322,7 @@ static FColorCVar *cv_standard[] = {
&am_thingcolor_item, &am_thingcolor_item,
&am_thingcolor_citem, &am_thingcolor_citem,
&am_thingcolor_monster, &am_thingcolor_monster,
&am_thingcolor_ncmonster,
&am_thingcolor_friend, &am_thingcolor_friend,
&am_specialwallcolor, &am_specialwallcolor,
&am_secretwallcolor, &am_secretwallcolor,
@ -342,6 +347,7 @@ static FColorCVar *cv_overlay[] = {
&am_ovthingcolor_item, &am_ovthingcolor_item,
&am_ovthingcolor_citem, &am_ovthingcolor_citem,
&am_ovthingcolor_monster, &am_ovthingcolor_monster,
&am_ovthingcolor_ncmonster,
&am_ovthingcolor_friend, &am_ovthingcolor_friend,
&am_ovspecialwallcolor, &am_ovspecialwallcolor,
&am_ovsecretwallcolor, &am_ovsecretwallcolor,
@ -368,6 +374,7 @@ static unsigned char DoomColors[]= {
0x74,0xfc,0x6c, // thingcolor_item 0x74,0xfc,0x6c, // thingcolor_item
0x74,0xfc,0x6c, // thingcolor_citem 0x74,0xfc,0x6c, // thingcolor_citem
0x74,0xfc,0x6c, // thingcolor_monster 0x74,0xfc,0x6c, // thingcolor_monster
0x74,0xfc,0x6c, // thingcolor_ncmonster
0x74,0xfc,0x6c, // thingcolor_friend 0x74,0xfc,0x6c, // thingcolor_friend
NOT_USED, // specialwallcolor NOT_USED, // specialwallcolor
NOT_USED, // secretwallcolor NOT_USED, // secretwallcolor
@ -393,6 +400,7 @@ static unsigned char StrifeColors[]= {
219, 171, 0, // thingcolor_item 219, 171, 0, // thingcolor_item
219, 171, 0, // thingcolor_citem 219, 171, 0, // thingcolor_citem
0xfc,0x00,0x00, // thingcolor_monster 0xfc,0x00,0x00, // thingcolor_monster
0xfc,0x00,0x00, // thingcolor_ncmonster
0xfc,0x00,0x00, // thingcolor_friend 0xfc,0x00,0x00, // thingcolor_friend
NOT_USED, // specialwallcolor NOT_USED, // specialwallcolor
NOT_USED, // secretwallcolor NOT_USED, // secretwallcolor
@ -418,6 +426,7 @@ static unsigned char RavenColors[]= {
236, 236, 236, // thingcolor_item 236, 236, 236, // thingcolor_item
236, 236, 236, // thingcolor_citem 236, 236, 236, // thingcolor_citem
236, 236, 236, // thingcolor_monster 236, 236, 236, // thingcolor_monster
236, 236, 236, // thingcolor_ncmonster
236, 236, 236, // thingcolor_friend 236, 236, 236, // thingcolor_friend
NOT_USED, // specialwallcolor NOT_USED, // specialwallcolor
NOT_USED, // secretwallcolor NOT_USED, // secretwallcolor
@ -2669,7 +2678,8 @@ void AM_drawThings ()
// use separate colors for special thing types // use separate colors for special thing types
if (t->flags3&MF3_ISMONSTER && !(t->flags&MF_CORPSE)) if (t->flags3&MF3_ISMONSTER && !(t->flags&MF_CORPSE))
{ {
if (t->flags & MF_FRIENDLY || !(t->flags & MF_COUNTKILL)) color = AMColors[AMColors.ThingColor_Friend]; if (t->flags & MF_FRIENDLY) color = AMColors[AMColors.ThingColor_Friend];
else if (!(t->flags & MF_COUNTKILL)) color = AMColors[AMColors.ThingColor_NocountMonster];
else color = AMColors[AMColors.ThingColor_Monster]; else color = AMColors[AMColors.ThingColor_Monster];
} }
else if (t->flags&MF_SPECIAL) else if (t->flags&MF_SPECIAL)

View file

@ -909,6 +909,11 @@ CCMD (openmenu)
M_SetMenu(argv[1], -1); M_SetMenu(argv[1], -1);
} }
CCMD (closemenu)
{
M_ClearMenus();
}
// //
// Toggle messages on/off // Toggle messages on/off
// //

View file

@ -763,7 +763,7 @@ public:
: FOptionMenuItem(label, menu) : FOptionMenuItem(label, menu)
{ {
FBaseCVar *cv = FindCVar(menu, NULL); FBaseCVar *cv = FindCVar(menu, NULL);
if (cv->GetRealType() == CVAR_Color) if (cv != NULL && cv->GetRealType() == CVAR_Color)
{ {
mCVar = (FColorCVar*)cv; mCVar = (FColorCVar*)cv;
} }

View file

@ -5242,7 +5242,7 @@ doplaysound: if (funcIndex == ACSF_PlayActorSound)
{ {
const char *type = FBehavior::StaticLookupString(args[1]); const char *type = FBehavior::StaticLookupString(args[1]);
int amount = argCount >= 3? args[2] : -1; int amount = argCount >= 3? args[2] : -1;
int chance = argCount >= 4? args[3] : -1; int chance = argCount >= 4? args[3] : 256;
const PClass *cls = PClass::FindClass(type); const PClass *cls = PClass::FindClass(type);
int cnt = 0; int cnt = 0;
if (cls != NULL) if (cls != NULL)

View file

@ -382,7 +382,8 @@ bool P_TeleportMove (AActor *thing, fixed_t x, fixed_t y, fixed_t z, bool telefr
// monsters don't stomp things except on boss level // monsters don't stomp things except on boss level
// [RH] Some Heretic/Hexen monsters can telestomp // [RH] Some Heretic/Hexen monsters can telestomp
if (StompAlwaysFrags && !(th->flags6 & MF6_NOTELEFRAG)) // ... and some items can never be telefragged while others will be telefragged by everything that teleports upon them.
if ((StompAlwaysFrags && !(th->flags6 & MF6_NOTELEFRAG)) || (th->flags7 & MF7_ALWAYSTELEFRAG))
{ {
P_DamageMobj (th, thing, thing, TELEFRAG_DAMAGE, NAME_Telefrag, DMG_THRUSTLESS); P_DamageMobj (th, thing, thing, TELEFRAG_DAMAGE, NAME_Telefrag, DMG_THRUSTLESS);
continue; continue;

View file

@ -239,6 +239,7 @@ static FFlagDef ActorFlags[]=
DEFINE_FLAG(MF7, NEVERTARGET, AActor, flags7), DEFINE_FLAG(MF7, NEVERTARGET, AActor, flags7),
DEFINE_FLAG(MF7, NOTELESTOMP, AActor, flags7), DEFINE_FLAG(MF7, NOTELESTOMP, AActor, flags7),
DEFINE_FLAG(MF7, ALWAYSTELEFRAG, AActor, flags7),
// Effect flags // Effect flags
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects), DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),

View file

@ -1019,6 +1019,7 @@ OptionMenu MapColorMenu
ColorPicker "Secret walls", "am_secretwallcolor" ColorPicker "Secret walls", "am_secretwallcolor"
ColorPicker "Actors", "am_thingcolor" ColorPicker "Actors", "am_thingcolor"
ColorPicker "Monsters", "am_thingcolor_monster" ColorPicker "Monsters", "am_thingcolor_monster"
ColorPicker "non-counting Monsters", "am_thingcolor_ncmonster"
ColorPicker "Friends", "am_thingcolor_friend" ColorPicker "Friends", "am_thingcolor_friend"
ColorPicker "Items", "am_thingcolor_item" ColorPicker "Items", "am_thingcolor_item"
ColorPicker "Count Items", "am_thingcolor_citem" ColorPicker "Count Items", "am_thingcolor_citem"
@ -1041,6 +1042,7 @@ OptionMenu MapColorMenu
ColorPicker "Secret walls", "am_ovsecretwallcolor" ColorPicker "Secret walls", "am_ovsecretwallcolor"
ColorPicker "Actors", "am_ovthingcolor" ColorPicker "Actors", "am_ovthingcolor"
ColorPicker "Monsters", "am_ovthingcolor_monster" ColorPicker "Monsters", "am_ovthingcolor_monster"
ColorPicker "non-counting Monsters", "am_ovthingcolor_ncmonster"
ColorPicker "Friends", "am_ovthingcolor_friend" ColorPicker "Friends", "am_ovthingcolor_friend"
ColorPicker "Items", "am_ovthingcolor_item" ColorPicker "Items", "am_ovthingcolor_item"
ColorPicker "Count Items", "am_ovthingcolor_citem" ColorPicker "Count Items", "am_ovthingcolor_citem"