Beispiel #1
0
/******************************************************************************
 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;
}
Beispiel #4
0
/******************************************************************************
 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;
}