-
Notifications
You must be signed in to change notification settings - Fork 34
rc_runtime_do_frame
Updates the runtime for a single frame of emulation.
void rc_runtime_do_frame(
rc_runtime_t* runtime,
rc_runtime_event_handler_t event_handler,
rc_peek_t peek,
void* ud,
lua_State* L
);
runtime
Pointer to the rc_runtime_t
object to be processed.
event_handler
Pointer to a function that will be called for each rc_runtime_event_t
raised for the current frame.
peek
Pointer to a function that will be called to read memory from the emulator.
ud
Caller provided data to pass to the peek
function.
L
(NOT USED)
A pointer to a lua_State
that contains the LUA functions needed by the runtime. May be NULL if the triggers do not use LUA functions.
Must be called once for each frame of emulation.
Minimum version: 9.0.0
Defines a structure to be passed to the event_handler
function passed to rc_runtime_do_frame
.
typedef struct rc_runtime_event_t {
unsigned id;
int value;
char type;
}
rc_runtime_event_t;
id
The unique identifier of the record associated to the event.
value
The current value of the leaderboard associated to leaderboard events.
type
The type of event.
Event Type | Description |
---|---|
RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED | The requirements for the achievement have been met. |
RC_RUNTIME_EVENT_ACHIEVEMENT_PRIMED² | All non-trigger conditions on a challenge achievement have been met indicating the challenge has begun. A challenge indicator should be shown by the client |
RC_RUNTIME_EVENT_ACHIEVEMENT_UNPRIMED² | A challenge achievement is no longer about to trigger. The challenge indicator for the achievement should no longer be shown by the client |
RC_RUNTIME_EVENT_ACHIEVEMENT_PROGRESS_UPDATED | Progress has been made towards a measured achievement. An indicator should be shown for 2 seconds containing the achievement icon and progress. No event will be raised to hide the indicator. |
RC_RUNTIME_EVENT_ACHIEVEMENT_ACTIVATED¹ | The achievement is applicable to trigger. Raised when transitioning from "waiting" or "paused" to "active". |
RC_RUNTIME_EVENT_ACHIEVEMENT_PAUSED¹ | The core condition or all alt conditions of the achievement are paused. |
RC_RUNTIME_EVENT_ACHIEVEMENT_RESET¹ | One or more reset conditions has caused all hit counts on the achievement to be reset. |
RC_RUNTIME_EVENT_LBOARD_STARTED | A leaderboard attempt has started. |
RC_RUNTIME_EVENT_LBOARD_TRIGGERED | A leaderboard attempt has been completed. |
RC_RUNTIME_EVENT_LBOARD_CANCELED | A leaderboard attempt has failed. |
RC_RUNTIME_EVENT_LBOARD_UPDATED | The value being tracked by the leaderboard has changed. |
¹ These events are used by the toolkit for debugging. Most clients won't need to respond to them.
² These events are notifications from the runtime to hide/show the challenge indicator. If an achievement is manually deactivated by rc_runtime_deactivate_achievement, the event will not be raised and the caller will be responsible for hiding the indicator (if present).
- rc_client_abort_async
- rc_client_create
- rc_client_destroy
- rc_client_enable_logging
- rc_client_get_encore_mode_enabled
- rc_client_get_hardcore_enabled
- rc_client_get_spectator_mode_enabled
- rc_client_get_unofficial_enabled
- rc_client_get_user_agent_clause
- rc_client_get_userdata
- rc_client_set_encore_mode_enabled
- rc_client_set_hardcore_enabled
- rc_client_set_host
- rc_client_set_spectator_mode_enabled
- rc_client_set_unofficial_enabled
- rc_client_set_userdata
- rc_client_begin_login_with_password
- rc_client_begin_login_with_token
- rc_client_get_user_info
- rc_client_get_user_game_summary
- rc_client_logout
- rc_client_user_get_image_url
- rc_client_achievement_get_image_url
- rc_client_begin_change_media
- rc_client_begin_change_media_from_hash
- rc_client_begin_fetch_leaderboard_entries
- rc_client_begin_fetch_leaderboard_entries_around_user
- rc_client_begin_identify_and_load_game
- rc_client_begin_load_game
- rc_client_create_achievement_list
- rc_client_create_leaderboard_list
- rc_client_destroy_achievement_list
- rc_client_destroy_leaderboard_entry_list
- rc_client_destroy_leaderboard_list
- rc_client_game_get_image_url
- rc_client_get_achievement_info
- rc_client_get_game_info
- rc_client_get_leaderboard_info
- rc_client_get_load_game_state
- rc_client_get_rich_presence_message
- rc_client_has_achievements
- rc_client_has_leaderboards
- rc_client_has_rich_presence
- rc_client_is_game_loaded
- rc_client_leaderboard_entry_get_user_image_url
- rc_client_unload_game
- rc_client_can_pause
- rc_client_deserialize_progress
- rc_client_do_frame
- rc_client_idle
- rc_client_is_processing_required
- rc_client_progress_size
- rc_client_reset
- rc_client_serialize_progress
- rc_client_set_event_handler
- rc_client_set_read_memory_function
- rc_client_begin_load_raintegration
- rc_client_raintegration_activate_menu_item
- rc_client_raintegration_get_achievement_state
- rc_client_raintegration_get_menu
- rc_client_raintegration_has_modifications
- rc_client_raintegration_rebuild_submenu
- rc_client_raintegration_set_console_id
- rc_client_raintegration_set_event_handler
- rc_client_raintegration_set_get_game_name_function
- rc_client_raintegration_set_write_memory_function
- rc_client_raintegration_update_main_window_handle
- rc_client_raintegration_update_menu_item
- rc_client_unload_raintegration
- rc_runtime_activate_achievement
- rc_runtime_activate_lboard
- rc_runtime_activate_richpresence
- rc_runtime_deactivate_achievement
- rc_runtime_deactivate_lboard
- rc_runtime_deserialize_progress
- rc_runtime_destroy
- rc_runtime_do_frame
- rc_runtime_format_achievement_measured
- rc_runtime_format_lboard_value
- rc_runtime_get_achievement
- rc_runtime_get_achievement_measured
- rc_runtime_get_lboard
- rc_runtime_get_richpresence
- rc_runtime_init
- rc_runtime_invalidate_address
- rc_runtime_progress_size
- rc_runtime_reset
- rc_runtime_serialize_progress
- rc_runtime_validate_addresses
- rc_hash_destroy_iterator
- rc_hash_generate_from_buffer
- rc_hash_generate_from_file
- rc_hash_init_custom_cdreader
- rc_hash_init_custom_filereader
- rc_hash_init_error_message_callback
- rc_hash_init_verbose_message_callback
- rc_hash_initialize_iterator
- rc_hash_iterate
- rc_api_destroy_fetch_user_unlocks_response
- rc_api_destroy_login_response
- rc_api_destroy_start_session_response
- rc_api_init_fetch_user_unlocks_request
- rc_api_init_login_request
- rc_api_init_start_session_request
- rc_api_process_fetch_user_unlocks_response
- rc_api_process_login_response
- rc_api_process_start_session_response
- rc_api_destroy_award_achievement_response
- rc_api_destroy_fetch_game_data_response
- rc_api_destroy_ping_response
- rc_api_destroy_resolve_hash_response
- rc_api_destroy_submit_lboard_entry_response
- rc_api_init_award_achievement_request
- rc_api_init_fetch_game_data_request
- rc_api_init_fetch_image_request
- rc_api_init_ping_request
- rc_api_init_resolve_hash_request
- rc_api_init_submit_lboard_entry_request
- rc_api_process_award_achievement_response
- rc_api_process_fetch_game_data_response
- rc_api_process_ping_response
- rc_api_process_resolve_hash_response
- rc_api_process_submit_lboard_entry_response
- rc_api_destroy_fetch_achievement_info_response
- rc_api_destroy_fetch_game_titles_response
- rc_api_destroy_fetch_games_list_response
- rc_api_destroy_fetch_leaderboard_info_response
- rc_api_init_fetch_achievement_info_request
- rc_api_init_fetch_game_titles_request
- rc_api_init_fetch_games_list_request
- rc_api_init_fetch_leaderboard_info_request
- rc_api_process_fetch_achievement_info_response
- rc_api_process_fetch_game_titles_server_response
- rc_api_process_fetch_games_list_response
- rc_api_process_fetch_leaderboard_info_response