This commit is contained in:
Christoph Oelckers 2013-08-27 23:53:40 +02:00
commit 4d3f6cae2e
6 changed files with 40 additions and 11 deletions

View file

@ -44,7 +44,7 @@
#define DUMB_VERSION_STR "0.9.3"
#define DUMB_NAME "DUMB v"DUMB_VERSION_STR
#define DUMB_NAME "DUMB v" DUMB_VERSION_STR
#define DUMB_YEAR 2005
#define DUMB_MONTH 8
@ -56,13 +56,13 @@
#define DUMB_DAY_STR1 "7"
#if DUMB_MONTH < 10
#define DUMB_MONTH_STR2 "0"DUMB_MONTH_STR1
#define DUMB_MONTH_STR2 "0" DUMB_MONTH_STR1
#else
#define DUMB_MONTH_STR2 DUMB_MONTH_STR1
#endif
#if DUMB_DAY < 10
#define DUMB_DAY_STR2 "0"DUMB_DAY_STR1
#define DUMB_DAY_STR2 "0" DUMB_DAY_STR1
#else
#define DUMB_DAY_STR2 DUMB_DAY_STR1
#endif
@ -74,7 +74,7 @@
*/
#define DUMB_DATE (DUMB_YEAR*10000 + DUMB_MONTH*100 + DUMB_DAY)
#define DUMB_DATE_STR DUMB_DAY_STR1"."DUMB_MONTH_STR1"."DUMB_YEAR_STR4
#define DUMB_DATE_STR DUMB_DAY_STR1 "." DUMB_MONTH_STR1 "." DUMB_YEAR_STR4
#undef MIN

View file

@ -650,8 +650,8 @@ static DUMB_IT_SIGDATA *it_mod_load_sigdata(DUMBFILE *f, int rstrict)
if ( ( rstrict & 2 ) )
{
long total_sample_size;
long remain;
int32 total_sample_size;
int32 remain;
rem = f;
f = dumbfile_buffer_mod_2(rem, sigdata->n_samples, sigdata->sample, &total_sample_size, &remain);
if (!f) {

View file

@ -436,7 +436,7 @@ static int limit_xm_getc(void *f)
static long limit_xm_getnc(char *ptr, int32 n, void *f)
static int32 limit_xm_getnc(char *ptr, int32 n, void *f)
{
LIMITED_XM *lx = f;
int left;

View file

@ -137,18 +137,40 @@ DEFINE_ACTION_FUNCTION(AActor, A_JabDagger)
//
//============================================================================
enum
{
AMF_TARGETEMITTER = 1,
AMF_TARGETNONPLAYER = 2,
AMF_EMITFROMTARGET = 4,
};
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_AlertMonsters)
{
ACTION_PARAM_START(1);
ACTION_PARAM_FIXED(maxdist, 0);
ACTION_PARAM_INT(Flags, 1);
if (self->player != NULL)
AActor * target;
AActor * emitter = self;
if (self->player != NULL || (Flags & AMF_TARGETEMITTER))
{
P_NoiseAlert(self, self, false, maxdist);
target = self;
}
else if (self->target != NULL && (Flags & AMF_TARGETNONPLAYER))
{
target = self->target;
}
else if (self->target != NULL && self->target->player != NULL)
{
P_NoiseAlert (self->target, self, false, maxdist);
target = self->target;
}
if (Flags & AMF_EMITFROMTARGET) emitter = target;
if (target != NULL && emitter != NULL)
{
P_NoiseAlert(target, emitter, false, maxdist);
}
}

View file

@ -180,7 +180,7 @@ ACTOR Actor native //: Thinker
action native A_TurretLook();
action native A_KlaxonBlare();
action native A_Countdown();
action native A_AlertMonsters(float maxdist = 0);
action native A_AlertMonsters(float maxdist = 0, int flags = 0);
action native A_ClearSoundTarget();
action native A_FireAssaultGun();
action native A_CheckTerrain();

View file

@ -348,5 +348,12 @@ enum
CLOFF_NOAIM = CLOFF_NOAIM_VERT|CLOFF_NOAIM_HORZ
};
// Flags for A_AlertMonsters
const int AMF_TARGETEMITTER = 1;
const int AMF_TARGETNONPLAYER = 2;
const int AMF_EMITFROMTARGET = 4;
// This is only here to provide one global variable for testing.
native int testglobalvar;