60% of nnextsif.cpp handled.

This commit is contained in:
Christoph Oelckers 2023-10-14 12:47:27 +02:00
parent 14464dcd9f
commit e889f16803
6 changed files with 2466 additions and 4 deletions

View file

@ -71,7 +71,8 @@
#ifdef NOONE_EXTENSIONS
#include "src/nnsprinsect.cpp"
#include "src/nnexts.cpp"
//#include "src/nnexts.cpp"
#include "src/nnextsif.cpp"
#include "src/nnextstr.cpp"
#endif

View file

@ -32,7 +32,7 @@ public:
#ifdef NOONE_EXTENSIONS
SPRITEMASS spriteMass;
GENDUDEEXTRA genDudeExtra;
EventObject condition[2];
EventObject condition[4];
TObjPtr<DBloodActor*> prevmarker; // needed by the nnext marker code. This originally hijacked targetX in XSPRITE
#endif
DVector3 basePoint;

View file

@ -146,7 +146,7 @@ struct XSECTOR {
unsigned int state : 1; // State
unsigned int triggerOn : 1; // Send at ON
unsigned int triggerOff : 1; // Send at OFF
unsigned int restState : 1;
unsigned int restState : 1; // was unused1
unsigned int interruptable : 1; // Interruptable
unsigned int reTriggerA : 1; // OFF->ON wait
unsigned int reTriggerB : 1; // ON->OFF wait

View file

@ -273,7 +273,6 @@ extern const VECTORINFO_EXTRA gVectorInfoExtra[kVectorMax];
extern const MISSILEINFO_EXTRA gMissileInfoExtra[kMissileMax];
extern const DUDEINFO_EXTRA gDudeInfoExtra[kDudeMax];
extern TRPLAYERCTRL gPlayerCtrl[kMaxPlayers];
extern TArray<TRCONDITION> gConditions;
inline TObjPtr<DBloodActor*> gProxySpritesList[kMaxSuperXSprites];
inline TObjPtr<DBloodActor*> gSightSpritesList[kMaxSuperXSprites];
inline TObjPtr<DBloodActor*> gPhysSpritesList[kMaxSuperXSprites];
@ -420,6 +419,10 @@ inline bool valueIsBetween(int val, int min, int max)
return (val > min && val < max);
}
inline bool rngok(int val, int min, int max)
{
return (val > min && val < max);
}
////////////////////////////////////////////////////////////////////////
// This file provides modern features for mappers.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,57 @@
//-------------------------------------------------------------------------
/*
Copyright (C) 2010-2019 EDuke32 developers and contributors
Copyright (C) 2019 Nuke.YKT
Copyright (C) NoOne
This file is part of NBlood.
NBlood is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
//-------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////
// This file provides modern features for mappers.
// For full documentation please visit http://cruo.bloodgame.ru/xxsystem
///////////////////////////////////////////////////////////////////
#ifndef __NNEXTSIF_H
#define __NNEXTSIF_H
#include "db.h"
#include "eventq.h"
BEGIN_BLD_NS
#define CONDITIONS_USE_BUBBLE_ACTION 1
void conditionsInit(bool bSaveLoad);
void conditionsError(DBloodActor* actor, const char* pFormat, ...);
void conditionsTrackingAlloc(bool bSaveLoad);
void conditionsTrackingClear();
void conditionsTrackingProcess();
void conditionsLinkPlayer(DBloodActor* pXCtrl, DBloodPlayer* pPlay);
void conditionsUpdateIndex(int oType, int oldIndex, int newIndex);
void useCondition(DBloodActor* pSource, EVENT* pEvn);
#ifdef CONDITIONS_USE_BUBBLE_ACTION
void conditionsSetIsLocked(DBloodActor* actor, int nValue);
void conditionsSetIsTriggered(DBloodActor* actor, int nValue);
void conditionsBubble(DBloodActor* pXStart, void(*pActionFunc)(DBloodActor*, int), int nValue);
#endif
END_BLD_NS
#endif