SimAntics & World Development (archive)

Discussion in 'Development News' started by RHY3756547, Feb 16, 2014.

Thread Status:
Not open for further replies.
  1. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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!
    [​IMG]
    Last edited: Feb 27, 2014
    aidancheddar likes this.
  2. aidancheddar

    aidancheddar Active Member

    [​IMG]
    This drawing seems appreciate regarding the SimAnatics research. Below is the original used during the TSOR era:
    [​IMG]
    Last edited: Feb 28, 2014
    Tori Sim, xezno and RHY3756547 like this.
  3. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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.
  4. francot514

    francot514 Well-Known Member

    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...
  5. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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.
  6. francot514

    francot514 Well-Known Member

    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...
  7. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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.
    aidancheddar likes this.
  8. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    aidancheddar likes this.
  9. aidancheddar

    aidancheddar Active Member

    Lookin' forward to compiling this.
  10. aidancheddar

    aidancheddar Active Member


    This can only be shown in video. :D
    Last edited: Feb 28, 2014
  11. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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.
  12. aidancheddar

    aidancheddar Active Member

    [​IMG]
    There we go. Thanks. :D
    Last edited: Feb 28, 2014
  13. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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).
    heat33330 and aidancheddar like this.
  14. francot514

    francot514 Well-Known Member

    Good and interesting images and video, is good see progress, but i have to ask what happened with walls!!?
  15. aidancheddar

    aidancheddar Active Member

    Code merge probably removed it since this is a different lot (first level in the waiter career) then the original.
  16. ddfczm

    ddfczm Administrator Staff Member Moderator

    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 :)?
  17. aidancheddar

    aidancheddar Active Member

    Oh, the lot rendering engine was redid? My bad.
    Last edited: Feb 28, 2014
  18. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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.
  19. aidancheddar

    aidancheddar Active Member

    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
  20. Afr0

    Afr0 Well-Known Member

    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.
    aidancheddar likes this.
Thread Status:
Not open for further replies.

Share This Page