mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2025-03-12 21:28:17 +00:00
Merge branch 'master' of https://github.com/coelckers/gzdoom
# Conflicts: # src/version.h
This commit is contained in:
commit
db920274f1
20 changed files with 58 additions and 67 deletions
|
@ -388,6 +388,7 @@ enum ActorFlag7
|
|||
MF7_SPRITEANGLE = 0x02000000, // [MC] Utilize the SpriteAngle property and lock the rotation to the degrees specified.
|
||||
MF7_SMASHABLE = 0x04000000, // dies if hitting the floor.
|
||||
MF7_NOSHIELDREFLECT = 0x08000000, // will not be reflected by shields.
|
||||
MF7_FORCEZERORADIUSDMG = 0x10000000, // passes zero radius damage on to P_DamageMobj, this is necessary in some cases where DoSpecialDamage gets overrideen.
|
||||
};
|
||||
|
||||
// --- mobj.renderflags ---
|
||||
|
|
|
@ -404,16 +404,6 @@ public:
|
|||
double CrosshairSize;
|
||||
double Displacement;
|
||||
|
||||
enum
|
||||
{
|
||||
imgLAME = 0,
|
||||
imgNEGATIVE = 1,
|
||||
imgINumbers = 2,
|
||||
imgBNEGATIVE = 12,
|
||||
imgBNumbers = 13,
|
||||
imgSmNumbers = 23,
|
||||
NUM_BASESB_IMAGES = 33
|
||||
};
|
||||
FImageCollection Images;
|
||||
|
||||
player_t *CPlayer;
|
||||
|
|
|
@ -54,7 +54,6 @@
|
|||
#include "v_palette.h"
|
||||
#include "p_acs.h"
|
||||
#include "gstrings.h"
|
||||
#include "version.h"
|
||||
#include "cmdlib.h"
|
||||
#include "g_levellocals.h"
|
||||
|
||||
|
|
|
@ -186,18 +186,6 @@ class DStrifeStatusBar : public DBaseStatusBar
|
|||
public:
|
||||
DStrifeStatusBar () : DBaseStatusBar (32)
|
||||
{
|
||||
static const char *sharedLumpNames[] =
|
||||
{
|
||||
NULL, NULL, "INVFONY0", "INVFONY1", "INVFONY2",
|
||||
"INVFONY3", "INVFONY4", "INVFONY5", "INVFONY6", "INVFONY7",
|
||||
"INVFONY8", "INVFONY9", NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, "INVFONG0", "INVFONG1",
|
||||
"INVFONG2", "INVFONG3", "INVFONG4", "INVFONG5", "INVFONG6",
|
||||
"INVFONG7", "INVFONG8", "INVFONG9"
|
||||
};
|
||||
|
||||
DBaseStatusBar::Images.Init (sharedLumpNames, NUM_BASESB_IMAGES);
|
||||
DoCommonInit ();
|
||||
}
|
||||
|
||||
|
@ -301,10 +289,11 @@ private:
|
|||
"INVFONY0", "INVFONY1", "INVFONY2", "INVFONY3", "INVFONY4",
|
||||
"INVFONY5", "INVFONY6", "INVFONY7", "INVFONY8", "INVFONY9",
|
||||
"INVFONY%",
|
||||
"I_COMM", "I_MDKT", "I_ARM1", "I_ARM2"
|
||||
"I_COMM", "I_MDKT", "I_ARM1", "I_ARM2", nullptr
|
||||
|
||||
};
|
||||
|
||||
Images.Init (strifeLumpNames, NUM_STRIFESB_IMAGES);
|
||||
Images.Init (strifeLumpNames, countof(strifeLumpNames));
|
||||
|
||||
CursorImage = Images[imgINVCURS] != NULL ? imgINVCURS : imgCURSOR01;
|
||||
|
||||
|
@ -834,8 +823,8 @@ private:
|
|||
imgMEDI,
|
||||
imgARM1,
|
||||
imgARM2,
|
||||
|
||||
NUM_STRIFESB_IMAGES
|
||||
imgNEGATIVE,
|
||||
imgINumbers = imgFONG0,
|
||||
};
|
||||
|
||||
FImageCollection Images;
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#include "doomtype.h"
|
||||
#include "m_argv.h"
|
||||
#include "zstring.h"
|
||||
#include "version.h"
|
||||
#include "i_system.h"
|
||||
#include "v_text.h"
|
||||
#include "r_utility.h"
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include "r_data/r_translate.h"
|
||||
#include "c_cvars.h"
|
||||
#include "v_font.h"
|
||||
#include "version.h"
|
||||
#include "textures/textures.h"
|
||||
|
||||
EXTERN_CVAR(Float, snd_menuvolume)
|
||||
|
|
|
@ -365,7 +365,7 @@ static void ParseListMenuBody(FScanner &sc, DListMenuDescriptor *desc)
|
|||
PClass *cls = PClass::FindClass(buildname);
|
||||
if (cls != nullptr && cls->IsDescendantOf("ListMenuItem"))
|
||||
{
|
||||
auto func = dyn_cast<PFunction>(cls->Symbols.FindSymbol("Init", false));
|
||||
auto func = dyn_cast<PFunction>(cls->Symbols.FindSymbol("Init", true));
|
||||
if (func != nullptr && !(func->Variants[0].Flags & (VARF_Protected | VARF_Private))) // skip internal classes which have a protexted init method.
|
||||
{
|
||||
auto &args = func->Variants[0].Proto->ArgumentTypes;
|
||||
|
@ -737,7 +737,7 @@ static void ParseOptionMenuBody(FScanner &sc, DOptionMenuDescriptor *desc)
|
|||
PClass *cls = PClass::FindClass(buildname);
|
||||
if (cls != nullptr && cls->IsDescendantOf("OptionMenuItem"))
|
||||
{
|
||||
auto func = dyn_cast<PFunction>(cls->Symbols.FindSymbol("Init", false));
|
||||
auto func = dyn_cast<PFunction>(cls->Symbols.FindSymbol("Init", true));
|
||||
if (func != nullptr && !(func->Variants[0].Flags & (VARF_Protected | VARF_Private))) // skip internal classes which have a protexted init method.
|
||||
{
|
||||
auto &args = func->Variants[0].Proto->ArgumentTypes;
|
||||
|
|
|
@ -5675,8 +5675,9 @@ int P_RadiusAttack(AActor *bombspot, AActor *bombsource, int bombdamage, int bom
|
|||
}
|
||||
points *= thing->GetClass()->RDFactor;
|
||||
|
||||
double check = int(points) * bombdamage;
|
||||
// points and bombdamage should be the same sign (the double cast of 'points' is needed to prevent overflows and incorrect values slipping through.)
|
||||
if ((((double)int(points) * bombdamage) > 0) && P_CheckSight(thing, bombspot, SF_IGNOREVISIBILITY | SF_IGNOREWATERBOUNDARY))
|
||||
if ((check > 0 || (check == 0 && bombspot->flags7 & MF7_FORCEZERORADIUSDMG)) && P_CheckSight(thing, bombspot, SF_IGNOREVISIBILITY | SF_IGNOREWATERBOUNDARY))
|
||||
{ // OK to damage; target is in direct path
|
||||
double vz;
|
||||
double thrust;
|
||||
|
@ -5753,7 +5754,7 @@ int P_RadiusAttack(AActor *bombspot, AActor *bombsource, int bombdamage, int bom
|
|||
|
||||
double factor = splashfactor * thing->GetClass()->RDFactor;
|
||||
damage = int(damage * factor);
|
||||
if (damage > 0)
|
||||
if (damage > 0 || (bombspot->flags7 & MF7_FORCEZERORADIUSDMG))
|
||||
{
|
||||
//[MC] Don't count actors saved by buddha if already at 1 health.
|
||||
int prehealth = thing->health;
|
||||
|
|
|
@ -3849,7 +3849,7 @@ void AActor::CheckPortalTransition(bool islinked)
|
|||
DVector3 oldpos = Pos();
|
||||
if (islinked && !moved) UnlinkFromWorld(&ctx);
|
||||
SetXYZ(PosRelative(Sector->GetOppositePortalGroup(sector_t::ceiling)));
|
||||
Prev = Pos() - oldpos;
|
||||
Prev += Pos() - oldpos;
|
||||
Sector = P_PointInSector(Pos());
|
||||
PrevPortalGroup = Sector->PortalGroup;
|
||||
moved = true;
|
||||
|
@ -3866,7 +3866,7 @@ void AActor::CheckPortalTransition(bool islinked)
|
|||
DVector3 oldpos = Pos();
|
||||
if (islinked && !moved) UnlinkFromWorld(&ctx);
|
||||
SetXYZ(PosRelative(Sector->GetOppositePortalGroup(sector_t::floor)));
|
||||
Prev = Pos() - oldpos;
|
||||
Prev += Pos() - oldpos;
|
||||
Sector = P_PointInSector(Pos());
|
||||
PrevPortalGroup = Sector->PortalGroup;
|
||||
moved = true;
|
||||
|
|
|
@ -52,7 +52,6 @@
|
|||
#include "backend/codegen.h"
|
||||
#include "w_wad.h"
|
||||
#include "v_video.h"
|
||||
#include "version.h"
|
||||
#include "v_text.h"
|
||||
#include "m_argv.h"
|
||||
|
||||
|
|
|
@ -54,7 +54,6 @@
|
|||
#include "i_system.h"
|
||||
#include "colormatcher.h"
|
||||
#include "backend/codegen.h"
|
||||
#include "version.h"
|
||||
#include "templates.h"
|
||||
#include "backend/vmbuilder.h"
|
||||
|
||||
|
|
|
@ -316,6 +316,7 @@ static FFlagDef ActorFlagDefs[]=
|
|||
DEFINE_FLAG(MF7, SPRITEANGLE, AActor, flags7),
|
||||
DEFINE_FLAG(MF7, SMASHABLE, AActor, flags7),
|
||||
DEFINE_FLAG(MF7, NOSHIELDREFLECT, AActor, flags7),
|
||||
DEFINE_FLAG(MF7, FORCEZERORADIUSDMG, AActor, flags7),
|
||||
|
||||
// Effect flags
|
||||
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
#include "i_system.h"
|
||||
#include "gdtoa.h"
|
||||
#include "backend/vmbuilder.h"
|
||||
#include "version.h"
|
||||
|
||||
static int GetIntConst(FxExpression *ex, FCompileContext &ctx)
|
||||
{
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
**
|
||||
*/
|
||||
|
||||
#include "gitinfo.h"
|
||||
|
||||
#ifndef __VERSION_H__
|
||||
#define __VERSION_H__
|
||||
|
||||
|
@ -41,12 +43,16 @@ const char *GetVersionString();
|
|||
|
||||
/** Lots of different version numbers **/
|
||||
|
||||
#define VERSIONSTR "2.3.2"
|
||||
#ifdef GIT_DESCRIPTION
|
||||
#define VERSIONSTR GIT_DESCRIPTION
|
||||
#else
|
||||
#define VERSIONSTR "2.3pre"
|
||||
#endif
|
||||
|
||||
// The version as seen in the Windows resource
|
||||
#define RC_FILEVERSION 2,3,2,0
|
||||
#define RC_PRODUCTVERSION 2,3,2,0
|
||||
#define RC_PRODUCTVERSION2 "2.3.2"
|
||||
#define RC_FILEVERSION 2,3,9999,0
|
||||
#define RC_PRODUCTVERSION 2,3,9999,0
|
||||
#define RC_PRODUCTVERSION2 VERSIONSTR
|
||||
|
||||
// Version identifier for network games.
|
||||
// Bump it every time you do a release unless you're certain you
|
||||
|
|
|
@ -437,7 +437,7 @@ class PoisonCloud : Actor
|
|||
Mass 0x7fffffff;
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF
|
||||
+NODAMAGETHRUST
|
||||
+DONTSPLASH +FOILINVUL +CANBLAST +BLOODLESSIMPACT +BLOCKEDBYSOLIDACTORS
|
||||
+DONTSPLASH +FOILINVUL +CANBLAST +BLOODLESSIMPACT +BLOCKEDBYSOLIDACTORS +FORCEZERORADIUSDMG
|
||||
RenderStyle "Translucent";
|
||||
Alpha 0.6;
|
||||
DeathSound "PoisonShroomDeath";
|
||||
|
|
|
@ -426,6 +426,8 @@ class LoadSaveMenu : ListMenu
|
|||
|
||||
class SaveMenu : LoadSaveMenu
|
||||
{
|
||||
String mSaveName;
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
//
|
||||
|
@ -464,7 +466,6 @@ class SaveMenu : LoadSaveMenu
|
|||
|
||||
override bool MenuEvent (int mkey, bool fromcontroller)
|
||||
{
|
||||
|
||||
if (Super.MenuEvent(mkey, fromcontroller))
|
||||
{
|
||||
return true;
|
||||
|
@ -483,8 +484,9 @@ class SaveMenu : LoadSaveMenu
|
|||
}
|
||||
else if (mkey == MKEY_Input)
|
||||
{
|
||||
// Do not start the save here, it would cause some serious execution ordering problems.
|
||||
mEntering = false;
|
||||
manager.DoSave(Selected, mInput.GetText());
|
||||
mSaveName = mInput.GetText();
|
||||
mInput = null;
|
||||
}
|
||||
else if (mkey == MKEY_Abort)
|
||||
|
@ -525,6 +527,14 @@ class SaveMenu : LoadSaveMenu
|
|||
}
|
||||
|
||||
|
||||
override void Ticker()
|
||||
{
|
||||
if (mSaveName.Length() > 0)
|
||||
{
|
||||
manager.DoSave(Selected, mSaveName);
|
||||
mSaveName = "";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -266,7 +266,7 @@ class Menu : Object native
|
|||
virtual bool CheckFocus(MenuItemBase fc) { return false; }
|
||||
virtual void ReleaseFocus() {}
|
||||
virtual void ResetColor() {}
|
||||
virtual bool MouseEvent(int type, int mx, int my) { return false; }
|
||||
virtual bool MouseEvent(int type, int mx, int my) { return true; }
|
||||
virtual void Ticker() {}
|
||||
|
||||
//=============================================================================
|
||||
|
|
|
@ -1129,6 +1129,7 @@ class OptionMenuItemTextField : OptionMenuFieldBase
|
|||
{
|
||||
Menu.MenuSound("menu/choose");
|
||||
mEnter = TextEnterMenu.Open(Menu.GetCurrentMenu(), GetCVarString(), -1, 2, fromcontroller);
|
||||
mEnter.ActivateMenu();
|
||||
return true;
|
||||
}
|
||||
else if (mkey == Menu.MKEY_Input)
|
||||
|
|
|
@ -188,6 +188,7 @@ class ListMenuItemPlayerNameBox : ListMenuItemSelectable
|
|||
{
|
||||
Menu.MenuSound ("menu/choose");
|
||||
mEnter = TextEnterMenu.Open(Menu.GetCurrentMenu(), mPlayerName, MAXPLAYERNAME, 2, fromcontroller);
|
||||
mEnter.ActivateMenu();
|
||||
return true;
|
||||
}
|
||||
else if (mkey == Menu.MKEY_Input)
|
||||
|
|
|
@ -171,31 +171,28 @@ class TextEnterMenu : Menu
|
|||
|
||||
override bool MouseEvent(int type, int x, int y)
|
||||
{
|
||||
if (mMouseCapture || m_use_mouse == 1)
|
||||
{
|
||||
int cell_width = 18 * CleanXfac;
|
||||
int cell_height = 12 * CleanYfac;
|
||||
int screen_y = screen.GetHeight() - INPUTGRID_HEIGHT * cell_height;
|
||||
int screen_x = (screen.GetWidth() - INPUTGRID_WIDTH * cell_width) / 2;
|
||||
int cell_width = 18 * CleanXfac;
|
||||
int cell_height = 12 * CleanYfac;
|
||||
int screen_y = screen.GetHeight() - INPUTGRID_HEIGHT * cell_height;
|
||||
int screen_x = (screen.GetWidth() - INPUTGRID_WIDTH * cell_width) / 2;
|
||||
|
||||
if (x >= screen_x && x < screen_x + INPUTGRID_WIDTH * cell_width && y >= screen_y)
|
||||
if (x >= screen_x && x < screen_x + INPUTGRID_WIDTH * cell_width && y >= screen_y)
|
||||
{
|
||||
InputGridX = (x - screen_x) / cell_width;
|
||||
InputGridY = (y - screen_y) / cell_height;
|
||||
if (type == MOUSE_Release)
|
||||
{
|
||||
InputGridX = (x - screen_x) / cell_width;
|
||||
InputGridY = (y - screen_y) / cell_height;
|
||||
if (type == MOUSE_Release)
|
||||
if (MenuEvent(MKEY_Enter, true))
|
||||
{
|
||||
if (MenuEvent(MKEY_Enter, true))
|
||||
{
|
||||
MenuSound("menu/choose");
|
||||
if (m_use_mouse == 2) InputGridX = InputGridY = -1;
|
||||
return true;
|
||||
}
|
||||
MenuSound("menu/choose");
|
||||
if (m_use_mouse == 2) InputGridX = InputGridY = -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
InputGridX = InputGridY = -1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
InputGridX = InputGridY = -1;
|
||||
}
|
||||
return Super.MouseEvent(type, x, y);
|
||||
}
|
||||
|
@ -262,8 +259,8 @@ class TextEnterMenu : Menu
|
|||
if (mEnterString.Length() > 0)
|
||||
{
|
||||
Menu parent = mParentMenu;
|
||||
Close();
|
||||
parent.MenuEvent(MKEY_Input, false);
|
||||
Close();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue