by FDARI » Fri Jun 03, 2011 1:14 pm
Check out zdoom_pack_r3218M.zip in original post.
Features all the things that were partially implemented in the previous posting.
Please test it viciously.
EDIT: Reuploaded now with improvements to actorptrselect.h. I removed some code duplication and got rid of the bulky #define macros.
Actor pointer selections now have a clearly defined order of priority:
There are three categories of pointer selectors: PLAYER, GENERAL and STATIC.
Whenever a PLAYER pointer is specified and applicable (the source actor is a player), the PLAYER pointer is used.
Otherwise, if a GENERAL pointer is specified and applicable (there is a source actor), the GENERAL pointer is used.
Otherwise, if a static pointer is specified (NULL, or one of the players), the PLAYER pointer is used.
Otherwise, the source actor is returned.
Any of the steps may return NULL. Containing a NULL value does not make a selector unapplicable.
Only one selector can be specified from each category. (use bitwise OR to combine selectors from different categories)
Selectors per category:
Player
AAPTR_PLAYER_GETTARGET, AAPTR_AAPTR_PLAYER_GETCONVERSATION
General
AAPTR_TARGET, AAPTR_MASTER, AAPTR_TRACER, AAPTR_FRIENDPLAYER
Static
AAPTR_PLAYER# (numbers 1 through 8), AAPTR_NULL
Check out zdoom_pack_r3218M.zip in original post.
Features all the things that were partially implemented in the previous posting.
Please test it viciously.
EDIT: Reuploaded now with improvements to actorptrselect.h. I removed some code duplication and got rid of the bulky #define macros.
Actor pointer selections now have a clearly defined order of priority:
There are three categories of pointer selectors: PLAYER, GENERAL and STATIC.
Whenever a PLAYER pointer is specified and applicable (the source actor is a player), the PLAYER pointer is used.
Otherwise, if a GENERAL pointer is specified and applicable (there is a source actor), the GENERAL pointer is used.
Otherwise, if a static pointer is specified (NULL, or one of the players), the PLAYER pointer is used.
Otherwise, the source actor is returned.
Any of the steps may return NULL. Containing a NULL value does not make a selector unapplicable.
Only one selector can be specified from each category. (use bitwise OR to combine selectors from different categories)
Selectors per category:
[b]Player[/b]
AAPTR_PLAYER_GETTARGET, AAPTR_AAPTR_PLAYER_GETCONVERSATION
[b]General[/b]
AAPTR_TARGET, AAPTR_MASTER, AAPTR_TRACER, AAPTR_FRIENDPLAYER
[b]Static[/b]
AAPTR_PLAYER# (numbers 1 through 8), AAPTR_NULL