- Converted the Heretic sound sequences and the particle fountains to DECORATE.

- Added DECORATE support for setting an actor's args. If this is done
  it will also disable the actor's special that can be set in a map. This
  is for actors that want to use A_CountdownArg or similar functions
  that use the args for something different than the special's parameters.
- Converted a_sharedmisc.cpp to DECORATE.
- Added a new NActorIterator that can search for classes specified by name.
- Added a new constructor to TThinkerIterator that can search
  for DECORATE defined subclasses that are not represented by a real C++ class.
- Fixed: BuildInfoDefaults must set the parent symbol table so that 
  all actors can get to the global symbols stored in AActor.
- Fixed some minor inconsistencies in the Arch-Vile's DECORATE definition.
- Fixed: A_VileAttack moved the flame without relinking it into the sector 
  lists. It also forgot to set the z-position correctly. (original Doom bug.)
- Fixed: The Doom 2 cast finale didn't work with the dynamic state name handling.


SVN r401 (trunk)
This commit is contained in:
Christoph Oelckers 2006-12-02 15:38:50 +00:00
commit c7644ca34e
26 changed files with 304 additions and 328 deletions

View file

@ -453,6 +453,7 @@ typedef struct
const char *name;
const char *type;
const AActor *info;
const PClass *Class;
} castinfo_t;
castinfo_t castorder[] =
@ -544,9 +545,15 @@ void F_StartCast (void)
{
type = PClass::FindClass (castorder[i].type);
if (type == NULL)
{
castorder[i].info = GetDefault<AActor>();
castorder[i].Class= RUNTIME_CLASS(AActor);
}
else
{
castorder[i].info = GetDefaultByType (type);
castorder[i].Class= type;
}
}
for (i = 0; atkstates[i].type; i++)
@ -708,7 +715,7 @@ bool F_CastResponder (event_t* ev)
// go into death frame
castdeath = true;
caststate = castorder[castnum].info->FindState(NAME_Death);
caststate = castorder[castnum].Class->ActorInfo->FindState(1, NAME_Death);
if (caststate != NULL)
{
casttics = caststate->GetTics();