X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=165120c050021a75ef5cc199d4118cbc396a762b;hb=2f383683929484fed45a21020ae241302ddd0ecd;hp=fcc82f30f17919c995a146f877de3287c0607863;hpb=1a5c85211f0a5b74366d264260d464266afb208d;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index fcc82f30..165120c0 100644 --- a/src/tools.c +++ b/src/tools.c @@ -7230,12 +7230,56 @@ int map_action_SP_to_RND(int action_sp) int map_element_RND_to_MM(int element_rnd) { - return (element_rnd > 1000 ? element_rnd - 1000 : 0); + return (element_rnd >= EL_MM_START_1 && + element_rnd <= EL_MM_END_1 ? + EL_MM_START_1_NATIVE + element_rnd - EL_MM_START_1 : + + element_rnd >= EL_MM_START_2 && + element_rnd <= EL_MM_END_2 ? + EL_MM_START_2_NATIVE + element_rnd - EL_MM_START_2 : + + element_rnd >= EL_CHAR_START && + element_rnd <= EL_CHAR_END ? + EL_MM_CHAR_START_NATIVE + element_rnd - EL_CHAR_START : + + element_rnd >= EL_MM_RUNTIME_START && + element_rnd <= EL_MM_RUNTIME_END ? + EL_MM_RUNTIME_START_NATIVE + element_rnd - EL_MM_RUNTIME_START : + + element_rnd >= EL_MM_DUMMY_START && + element_rnd <= EL_MM_DUMMY_END ? + EL_MM_DUMMY_START_NATIVE + element_rnd - EL_MM_DUMMY_START : + + EL_MM_EMPTY_NATIVE); } int map_element_MM_to_RND(int element_mm) { - return 1000 + element_mm; + return (element_mm == EL_MM_EMPTY_NATIVE || + element_mm == EL_DF_EMPTY_NATIVE ? + EL_EMPTY : + + element_mm >= EL_MM_START_1_NATIVE && + element_mm <= EL_MM_END_1_NATIVE ? + EL_MM_START_1 + element_mm - EL_MM_START_1_NATIVE : + + element_mm >= EL_MM_START_2_NATIVE && + element_mm <= EL_MM_END_2_NATIVE ? + EL_MM_START_2 + element_mm - EL_MM_START_2_NATIVE : + + element_mm >= EL_MM_CHAR_START_NATIVE && + element_mm <= EL_MM_CHAR_END_NATIVE ? + EL_CHAR_START + element_mm - EL_MM_CHAR_START_NATIVE : + + element_mm >= EL_MM_RUNTIME_START_NATIVE && + element_mm <= EL_MM_RUNTIME_END_NATIVE ? + EL_MM_RUNTIME_START + element_mm - EL_MM_RUNTIME_START_NATIVE : + + element_mm >= EL_MM_DUMMY_START_NATIVE && + element_mm <= EL_MM_DUMMY_END_NATIVE ? + EL_MM_DUMMY_START + element_mm - EL_MM_DUMMY_START_NATIVE : + + EL_EMPTY); } int get_next_element(int element) @@ -7258,6 +7302,11 @@ int get_next_element(int element) } } +int el2img_mm(int element_mm) +{ + return el2img(map_element_MM_to_RND(element_mm)); +} + int el_act_dir2img(int element, int action, int direction) { element = GFX_ELEMENT(element);