Skip to main content

siglus_scene_vm/
elm_code.rs

1//! Packed element-code helpers.
2//!
3//! Original macro:
4//! `((owner << 24) + (group << 16) + code)`.
5
6pub const ELM_OWNER_USER_PROP: u8 = crate::runtime::forms::codes::ELM_OWNER_USER_PROP as u8;
7pub const ELM_OWNER_USER_CMD: u8 = crate::runtime::forms::codes::ELM_OWNER_USER_CMD as u8;
8pub const ELM_OWNER_CALL_PROP: u8 = crate::runtime::forms::codes::ELM_OWNER_CALL_PROP as u8;
9pub const ELM_OWNER_CALL_CMD: u8 = crate::runtime::forms::codes::ELM_OWNER_CALL_CMD as u8;
10pub const ELM_OWNER_FUNCTION: u8 = crate::runtime::forms::codes::ELM_OWNER_FUNCTION as u8;
11pub const ELM_OWNER_FORM: u8 = crate::runtime::forms::codes::ELM_OWNER_FORM as u8;
12
13#[inline]
14pub const fn create(owner: i32, group: i32, code: i32) -> i32 {
15    crate::runtime::forms::codes::create_elm_code(owner, group, code)
16}
17
18#[inline]
19pub fn is_packed_element(x: i32) -> bool {
20    ((x as u32) >> 24) != 0
21}
22
23#[inline]
24pub fn owner(x: i32) -> u8 {
25    ((x as u32) >> 24) as u8
26}
27
28#[inline]
29pub fn group(x: i32) -> u8 {
30    (((x as u32) >> 16) & 0xFF) as u8
31}
32
33#[inline]
34pub fn code16(x: i32) -> u16 {
35    ((x as u32) & 0xFFFF) as u16
36}
37
38#[inline]
39pub fn code(x: i32) -> u16 {
40    code16(x)
41}