[ARCHIVE] SimAntics & World Development

Status
Not open for further replies.
OK, fixed it. (sleep 1 tick was actually sleeping 0)
But uh, TemplatePerson seems broken. The main thread just seems to constantly call reset_temp_behaviors and never actually gets into person main loop... (checking the flow control in edith it seems this way)

EDIT: THERE IS NO WAY INTO PERSON MAIN LOOP FROM ANY SECTION OF CODE!!!

EDIT2: Person main loop is not used! TSO seems to use Interaction - Idle with idle priority, however for this branch to be called Debug Flag 3 needs to be set (what? running the idle interaction isn't a debug thing...)

EDIT3: Confirmed - debug flags bit 3 is set automatically as evidenced by Edith's simulator globals inspector!
debug.png
 
Last edited:
Looks like sims use a constant idle priority interaction for the idle animations and functions in TSO. I'm not sure how interrupted interactions work yet, but it looks like when it is interrupted it exits the interaction via "reset idle", which plays the animation to return to the normal standing state. After this it presumably begins the interaction.

Since the interaction has idle priority, any user invoked or autonomous interactions should interrupt it in this way. Interestingly, there is no Interaction - Idle in the sims 1, I think that just uses the main function directly or some other, more hard coded means. (there is no TemplatePerson in TS1)

There are a few weird things with the code that I don't get, like how it constantly checks if "My room" is less than 0 (one of the conditions for ending the idle interaction, also if this is false when queued the interaction seems to push another of itself onto the queue) and how the main function would work with this interaction over it.
 
Yes, youre right the main is always the idle interaction, that allow object to be active all the time, also there is templateperson, but are called characters, and work kind different, when you create a new one is replaced with the exisinting template... Also was if the purpose of checking my room? Can you explain me that part...
 
They seem to use Idle for input with 0 ticks very often, I think they use it to detect if the animation has been cancelled.
Looks like it sets the flag "notified by Idle for Input" every time the primitive is called and its exit case is being notified instead of running out of ticks, which Wait for Notify seems to exhibit.

In personglobals::should exit neutral idle? you can clearly see that the first thing it does is check for the notification by calling Wait for Notify with 0 ticks (will be instant response this way even if no notify). If it's true, some attributes are reset and it returns true, then further up the stack it seems to continually check this and each time exit to the step above, before eventually ending the interaction. Still not sure of the relevance of "My room" though... or if the idle interaction blocks main.
 
I do not think idle blocks main, becuase it loops trought it from the start, What files are you using for get example code, the one from ea land edit or the one for sims 1, becuase i dont remember idle for input in the sims 1 coding...
 
You can see idle for input (for 0 frames, no push) in action in interactions where cancelling them cuts the behavior short (like food::eat sitting down, bookcases::read sitting down etc. where it is used via the global subroutine Wait For Notify)

I think this is only one of the uses of the primitive, though. There are others I haven't discovered yet involving allowing push.
 
I noticed you tried to use the flowers - you need to force them to be wilted before you water them or the interaction will end early.
 
Looks like the TSO self interactions like Laugh or Shake Fist all use a system where they place an object on the lot and queue its interaction instead of cluttering up personglobals. I'll try to get this working next, doing this should also fix the flood that should be appearing under the aquarium after cleaning it (interaction queue, create and remove object instance primitives).
 
Good and interesting images and video, is good see progress, but i have to ask what happened with walls!!?
 
Huh? Did PD ever have walls? I did a bit of work on walls ages ago but binned that when I redid the entire lot rendering engine (Original way was slow and hard to work with). Or did Rhys / Afr0 add some wall stuff recently I missed :)?
 
I'm leaving fixing up the lot rendering till later - the current state is good enough to render most things and I feel SimAntics is more important right now. When I get to it I'll work on fixing the z buffer first, then I'll set up the walls.

The Flood - Master is now generating when cleaning the aquarium, however it seems to think below the sim is at (0, 0) for whatever reason.
 
No rush here. Just learning how SimAntics and watch that research go into practice is enough to hold me over. That and Sims 1 itself. XD
 
I started doing walls a while ago. Might continue working on it, but right now there are networking issues and features that need to be implemented.
First and foremost I need to make sure that character creation works, right now it seems to be crashing the login server, but I think that just might be because GonzoNet is out of date client side.
Then I should add character retirement, and we've been talking about adding chat and mail system as well.
 
Status
Not open for further replies.
Back
Top