/****************************************************************************** Function: void kill_group_sound(WORD offset,OBJECT *obj) By: David Schwartz Date: Apr 1995 Parameters: offset - group offset obj - group to kill from Returns: None Description: ******************************************************************************/ void kill_group_sound(WORD offset,OBJECT *obj) { short *stbl; stbl=get_group_table(offset); current_proc->a2=GET_WORD(stbl)++; // # of entries current_proc->a3=current_proc->a2; (short)current_proc->a1=ochar_voice_groups[obj->ochar]; // a1 = my group (offset into groups data) if (((short)current_proc->a1)<0) return; // neg = no group for me else { stbl+=(current_proc->a2*current_proc->a1); // # of words to skip to get to our group data } /* gsnd5 */ do { wess_seq_stop(*stbl); // kill all sounds for that group stbl++; } while ( --current_proc->a3>0 ); return; }
static idigi_callback_status_t app_process_group_end(idigi_remote_group_request_t const * const request, idigi_remote_group_response_t * const response) { idigi_callback_status_t status = idigi_callback_continue; remote_group_table_t * group_ptr = get_group_table(request->group.type, request->group.id); ASSERT(group_ptr != NULL); if (group_ptr->end_cb != NULL) { status = group_ptr->end_cb(request, response); } return status; }
static idigi_callback_status_t app_process_group_process(idigi_remote_group_request_t const * const request, idigi_remote_group_response_t * const response) { idigi_callback_status_t status = idigi_callback_continue; remote_group_table_t * group_ptr = get_group_table(request->group.type, request->group.id); remote_group_cb_t callback; ASSERT(group_ptr != NULL); callback = (request->action == idigi_remote_action_set) ? group_ptr->set_cb : group_ptr->get_cb; if (callback) { status = callback(request, response); } return status; }
/****************************************************************************** Function: void group_sound(WORD offset) By: David Schwartz Date: Apr 1995 Parameters: offset - group offset Returns: None Description: ******************************************************************************/ void group_sound(WORD offset) { short *stbl; OBJECT *obj=current_proc->pa8; stbl=get_group_table(offset); current_proc->a2=GET_WORD(stbl)++; // # of entries current_proc->a3=current_proc->a2; (short)current_proc->a1=ochar_voice_groups[obj->ochar]; // a1 = my group (offset into groups data) if (((short)current_proc->a1)<0) return; // neg = no group for me else { stbl+=(current_proc->a2*current_proc->a1); // # of words to skip to get to our group data } /* gsnd5 */ next_table_sound(current_proc->a3,stbl); return; }