3 merged submissions (details in post)

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: 3 merged submissions (details in post)

Re: 3 merged submissions (details in post)

by Graf Zahl » Tue Jun 07, 2011 5:06 pm

And now it's finally done...

Re: 3 merged submissions (details in post)

by Major Cooke » Tue Jun 07, 2011 3:02 pm

Oooh man I really hope this makes it in!

Re: 3 merged submissions (details in post)

by FDARI » Tue Jun 07, 2011 2:03 pm

Double posting: I have completed my testing and submitted the final version. First post updated with attachment.

Re: 3 merged submissions (details in post)

by FDARI » Tue Jun 07, 2011 1:51 pm

There are some minor issues with A_CheckFlag for deprecated flags.

Inventory.* -flags: The function will never apply to them, because the calling context is never an inventory actor. (Not a problem)
FIRERESIST: ZDoom crashes with an access violation when I try to check this value. I'll probably be able to fix it.

All existing features, deprecated or not, are verified as compatible with previous versions (2.5.0).
All features with the exception of checking a few deprecated flags are working.

Since A_CheckFlag did not exist while the inventory-flags and fireresist were valid flags, it is not really necessary to add support for them. The same goes for all other currently deprecated flags. Support for deprecated flags is only required for flags that are are not deprecated as of the current version.

Still, it is more manageable if checking deprecated flags is a mirror/reverse of setting deprecated flags, so I'll try to fix it instead of removing it.

[edit]I wish I could help on the linux svn-app, but I really have no clue.
[edit]Found the issue with FIRERESIST (DamageFactor collection may be a null reference, needs a check.) Will upload fixed patch.

Re: 3 merged submissions (details in post)

by Edward-san » Tue Jun 07, 2011 11:32 am

More news: the patch works iff I do 'dos2unix' to all the trunk files. This suggestion came from http://svn.haxx.se/tsvn/archive-2005-11/0440.shtml and it worked.
Also: http://svn.haxx.se/tsvn/archive-2005-11/0441.shtml .

[edit]At this point I ask: can you suggest me another patcher program for linux?

Re: 3 merged submissions (details in post)

by Major Cooke » Tue Jun 07, 2011 10:10 am

Patched just fine. Just make sure to watch out for the newer submissions such as the screen fading as of recent.

Re: 3 merged submissions (details in post)

by Major Cooke » Tue Jun 07, 2011 9:56 am

I can apply mine because I'm using windows, so it's just fine. And yeah I use Tortoise SVN as well. Let me give it a quick spin...

Re: 3 merged submissions (details in post)

by FDARI » Tue Jun 07, 2011 9:45 am

The current patch is generated with Tortoise SVN. Major Cooke, I'd like to know if you're able to apply it, and if you are, I'd like you to put it to some testing as quickly as possible.

Graf: I do believe the code is ready. I keep checking for bugs because I didn't do a good enough job in that regard on my first submission. You could apply it as is, and let any fixes go through the bugfixing system. Otherwise, I'll post again when my tests are complete.

EDIT: Uh... Must I resubmit for r3221?

Re: 3 merged submissions (details in post)

by Edward-san » Tue Jun 07, 2011 9:21 am

I tried to patch my trunk directory with the diff in the zip file, but failed every hunk ... Ubuntu 10.10 x86-64...
Spoiler:

Re: 3 merged submissions (details in post)

by Major Cooke » Tue Jun 07, 2011 8:26 am

@FDARI: Understandable.

@Graf: YES!!! :D

Re: 3 merged submissions (details in post)

by Graf Zahl » Tue Jun 07, 2011 7:42 am

Add that feature as a separate submission. I want to get this thread out of the way ASAP.

Re: 3 merged submissions (details in post)

by FDARI » Tue Jun 07, 2011 4:52 am

If the features themselves are acceptable as it is, I'd like to "freeze" it at the current point, run some hard testing and say it is done.

There is one feature I'd be likely to submit later; or add to this submission. I've run it at a separate build with good results. That is the ACS function SetActivator with a second parameter (one of the AAPTR-values). It would work as follows:

SetActivator(int tid[, int selector])

if selector is not specified or default (0): the function behaves as before.
if a non-0 selector is specified: the selected pointer is used, relative to an actor matching the tid. TID 0 will represent the calling actor.

This would allow you to set any present player as the activator without regard to the current caller (static pointer), it would cover the SetActivatorToTarget functionality, SetActivatorToTracer|Master.

What do you think Graf? Freeze it right now, or add that one feature?

@Major Cooke: The most recent change is primarily in how the code looks. The defines were becoming long and ugly (with backslashes at the end of each line), and were full of duplicate code. However, the new code also contains a formal order of pointer selectors: The more specific the required caller-type is, the higher priority the selector has. (Player, Actor, Anything|Null)

Re: 3 merged submissions (details in post)

by Graf Zahl » Tue Jun 07, 2011 12:38 am

Ok, this has been hanging around for too long and from reading this thread I'm still not sure what the implementation state is. Are you still working on it or is this all complete and done?

Re: 3 merged submissions (details in post)

by Major Cooke » Mon Jun 06, 2011 8:46 pm

Is this purely just for coding change sake or does this have some more affect on things like the commands that use the new pointers? (the categories anyway)

Re: 3 merged submissions (details in post)

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

Top