Yes, when I wrote that, it was after seeing the generic_fm_smartlists function defined in SoundData/turkey.txt:
"Actor" should mean an object on the lot; in this case, the generic_fm_smartlists function looks at the object, or "actor", that called the "Play sound event" SimAntics instruction to create this HIT thread. The comment at the top says "the instance (person)" (in this case, the object is expected to be a sim), and the comment "Kill this actor's vocals" tells us that "instance" means instance of an actor.
I am guessing that "vocals" means currently playing sounds. So perhaps "seqgroup_kill Instance" looks at all of the HIT threads created by this object instance, and looks at all sounds created by all of those threads, and "kills" (stops playing) those sounds. (It wouldn't make sense to kill all of the HIT threads created by the object, because there is still more code after the seqgroup_kill instruction in that function, so it wouldn't make sense immediately kill the thread after that instruction is executed.)
What a sequence group is a little open to interpretation.
Code:
; Heeeeeere's a useful one. v1 and v2 are female and male hitlist ID's, respectively
; This track chooses the smartlist based on gender, picks a patch from that smartlist,
; plays it. It also kills anything else the instance (person) is saying.
; New! Now works for kids! v3 = kid smartlist
generic_fm_smartlists
; Kill this actor's vocals
seqgroup_kill Instance
; If it's male then redo it for male
loadb v7 0 ;v7 = field ID (0 = gender)
getsrcdatafield v7 arg1 v7 ;arg1 = source ID
; if gender is 0 then use v1 is correct (male)
ifeq #_gotit
; otherwise set v1 to female list
set v1 v2
; if gender == 1 then v1 is correct (female)
loadb v6 1
cmp v7 v6
ifeq #_gotit
; it's a kid - set v1 to kid smartlist
set v1 v3
_gotit
; v1 = smartlist id
test v1
ifeq #generic_fm_smartlists_end
smart_setlist v1
smart_choose v1
set patch v1
note_on v1
wait_samp
generic_fm_smartlists_end
end
]
"Actor" should mean an object on the lot; in this case, the generic_fm_smartlists function looks at the object, or "actor", that called the "Play sound event" SimAntics instruction to create this HIT thread. The comment at the top says "the instance (person)" (in this case, the object is expected to be a sim), and the comment "Kill this actor's vocals" tells us that "instance" means instance of an actor.
I am guessing that "vocals" means currently playing sounds. So perhaps "seqgroup_kill Instance" looks at all of the HIT threads created by this object instance, and looks at all sounds created by all of those threads, and "kills" (stops playing) those sounds. (It wouldn't make sense to kill all of the HIT threads created by the object, because there is still more code after the seqgroup_kill instruction in that function, so it wouldn't make sense immediately kill the thread after that instruction is executed.)
What a sequence group is a little open to interpretation.
Last edited: