From f5dd21b4bb360cc8dbbd89aee624ed4916ccfc06 Mon Sep 17 00:00:00 2001 From: cancel Date: Mon, 26 Nov 2018 13:27:15 +0900 Subject: [PATCH] Rename Markmap_buffer to Mbuffer --- mark.c | 2 +- mark.h | 20 ++++++++++---------- sim.c | 36 ++++++++++++++++-------------------- sim.h | 2 +- 4 files changed, 28 insertions(+), 32 deletions(-) diff --git a/mark.c b/mark.c index 1de8d3f..f3004fc 100644 --- a/mark.c +++ b/mark.c @@ -16,7 +16,7 @@ void markmap_reusable_ensure_size(Markmap_reusable* map, Usz height, void markmap_reusable_deinit(Markmap_reusable* map) { free(map->buffer); } -void markmap_clear(Markmap_buffer map, Usz height, Usz width) { +void mbuffer_clear(Mbuffer map, Usz height, Usz width) { Usz cleared_size = height * width; memset(map, 0, cleared_size); } diff --git a/mark.h b/mark.h index 23ffcf2..a1aedae 100644 --- a/mark.h +++ b/mark.h @@ -10,10 +10,10 @@ typedef enum { Mark_flag_sleep = 1 << 4, } Mark_flags; -typedef U8* Markmap_buffer; +typedef U8* Mbuffer; typedef struct Markmap_reusable { - Markmap_buffer buffer; + Mbuffer buffer; Usz capacity; } Markmap_reusable; @@ -21,21 +21,21 @@ void markmap_reusable_init(Markmap_reusable* map); void markmap_reusable_ensure_size(Markmap_reusable* map, Usz height, Usz width); void markmap_reusable_deinit(Markmap_reusable* map); -void markmap_clear(Markmap_buffer map, Usz height, Usz width); +void mbuffer_clear(Mbuffer map, Usz height, Usz width); ORCA_FORCE_INLINE -Mark_flags markmap_peek_relative(Markmap_buffer map, Usz map_height, +Mark_flags mbuffer_peek_relative(Mbuffer map, Usz map_height, Usz map_width, Usz y, Usz x, Isz offs_y, Isz offs_x); ORCA_FORCE_INLINE -void markmap_poke_relative(Markmap_buffer map, Usz map_height, Usz map_width, +void mbuffer_poke_relative(Mbuffer map, Usz map_height, Usz map_width, Usz y, Usz x, Isz offs_y, Isz offs_x, Mark_flags flags); // Inline implementation ORCA_FORCE_INLINE -Mark_flags markmap_peek_relative(Markmap_buffer map, Usz map_height, +Mark_flags mbuffer_peek_relative(Mbuffer map, Usz map_height, Usz map_width, Usz y, Usz x, Isz offs_y, Isz offs_x) { Isz y0 = (Isz)y + offs_y; @@ -46,7 +46,7 @@ Mark_flags markmap_peek_relative(Markmap_buffer map, Usz map_height, } ORCA_FORCE_INLINE -void markmap_poke_relative(Markmap_buffer map, Usz map_height, Usz map_width, +void mbuffer_poke_relative(Mbuffer map, Usz map_height, Usz map_width, Usz y, Usz x, Isz offs_y, Isz offs_x, Mark_flags flags) { Isz y0 = (Isz)y + offs_y; @@ -57,7 +57,7 @@ void markmap_poke_relative(Markmap_buffer map, Usz map_height, Usz map_width, } ORCA_FORCE_INLINE -void markmap_poke_relative_flags_or(Markmap_buffer map, Usz map_height, +void mbuffer_poke_relative_flags_or(Mbuffer map, Usz map_height, Usz map_width, Usz y, Usz x, Isz offs_y, Isz offs_x, Mark_flags flags) { Isz y0 = (Isz)y + offs_y; @@ -68,14 +68,14 @@ void markmap_poke_relative_flags_or(Markmap_buffer map, Usz map_height, } ORCA_FORCE_INLINE -void markmap_poke_flags_or(Markmap_buffer map, Usz map_height, Usz map_width, +void mbuffer_poke_flags_or(Mbuffer map, Usz map_height, Usz map_width, Usz y, Usz x, Mark_flags flags) { (void)map_height; map[y * map_width + x] |= (U8)flags; } ORCA_FORCE_INLINE -Mark_flags markmap_peek(Markmap_buffer map, Usz map_height, Usz map_width, +Mark_flags mbuffer_peek(Mbuffer map, Usz map_height, Usz map_width, Usz y, Usz x) { (void)map_height; return map[y * map_width + x]; diff --git a/sim.c b/sim.c index 392d2f0..66c60cb 100644 --- a/sim.c +++ b/sim.c @@ -48,8 +48,7 @@ static inline bool oper_has_neighboring_bang(Gbuffer gbuf, Usz h, Usz w, Usz y, gbuffer_peek_relative(gbuf, h, w, y, x, -1, 0) == '*'; } -static inline void oper_move_relative_or_explode(Gbuffer gbuf, - Markmap_buffer markmap, +static inline void oper_move_relative_or_explode(Gbuffer gbuf, Mbuffer mbuf, Usz height, Usz width, Glyph moved, Usz y, Usz x, Isz delta_y, Isz delta_x) { @@ -62,19 +61,17 @@ static inline void oper_move_relative_or_explode(Gbuffer gbuf, Glyph* at_dest = gbuf + (Usz)y0 * width + (Usz)x0; if (*at_dest != '.') { gbuf[y * width + x] = '*'; - markmap_poke_flags_or(markmap, height, width, y, x, Mark_flag_sleep); + mbuffer_poke_flags_or(mbuf, height, width, y, x, Mark_flag_sleep); return; } *at_dest = moved; - markmap_poke_flags_or(markmap, height, width, (Usz)y0, (Usz)x0, - Mark_flag_sleep); + mbuffer_poke_flags_or(mbuf, height, width, (Usz)y0, (Usz)x0, Mark_flag_sleep); gbuf[y * width + x] = '.'; } -static inline void oper_lock_relative(Markmap_buffer markmap, Usz height, - Usz width, Usz y, Usz x, Isz delta_y, - Isz delta_x) { - markmap_poke_relative_flags_or(markmap, height, width, y, x, delta_y, delta_x, +static inline void oper_lock_relative(Mbuffer mbuf, Usz height, Usz width, + Usz y, Usz x, Isz delta_y, Isz delta_x) { + mbuffer_poke_relative_flags_or(mbuf, height, width, y, x, delta_y, delta_x, Mark_flag_lock); } @@ -86,10 +83,9 @@ static inline void oper_lock_relative(Markmap_buffer markmap, Usz height, #define OPER_PHASE_N(_phase_number, _oper_name) \ static inline void oper_phase##_phase_number##_##_oper_name( \ - Gbuffer gbuffer, Markmap_buffer markmap, Usz height, Usz width, Usz y, \ - Usz x) { \ + Gbuffer gbuffer, Mbuffer mbuffer, Usz height, Usz width, Usz y, Usz x) { \ (void)gbuffer; \ - (void)markmap; \ + (void)mbuffer; \ (void)height; \ (void)width; \ (void)y; \ @@ -115,10 +111,10 @@ static inline void oper_lock_relative(Markmap_buffer markmap, Usz height, return #define OPER_LOCK_RELATIVE(_delta_y, _delta_x) \ - oper_lock_relative(markmap, height, width, y, x, _delta_y, _delta_x) + oper_lock_relative(mbuffer, height, width, y, x, _delta_y, _delta_x) #define OPER_MOVE_OR_EXPLODE(_delta_y, _delta_x) \ - oper_move_relative_or_explode(gbuffer, markmap, height, width, \ + oper_move_relative_or_explode(gbuffer, mbuffer, height, width, \ This_oper_char, y, x, _delta_y, _delta_x) #define OPER_DEFINE_UPPERCASE_DIRECTIONAL(_oper_name, _delta_y, _delta_x) \ @@ -210,19 +206,19 @@ OPER_END OPER_PHASE_2(bang) OPER_END -void orca_run(Gbuffer gbuf, Markmap_buffer markmap, Usz height, Usz width) { - markmap_clear(markmap, height, width); +void orca_run(Gbuffer gbuf, Mbuffer mbuf, Usz height, Usz width) { + mbuffer_clear(mbuf, height, width); // Phase 0 for (Usz iy = 0; iy < height; ++iy) { Glyph* glyph_row = gbuf + iy * width; for (Usz ix = 0; ix < width; ++ix) { Glyph c = glyph_row[ix]; - if (markmap_peek(markmap, height, width, iy, ix) & Mark_flag_sleep) + if (mbuffer_peek(mbuf, height, width, iy, ix) & Mark_flag_sleep) continue; switch (c) { #define X(_oper_name, _oper_char) \ case _oper_char: \ - oper_phase0_##_oper_name(gbuf, markmap, height, width, iy, ix); \ + oper_phase0_##_oper_name(gbuf, mbuf, height, width, iy, ix); \ break; ORCA_OPERATORS(X) #undef X @@ -233,13 +229,13 @@ void orca_run(Gbuffer gbuf, Markmap_buffer markmap, Usz height, Usz width) { for (Usz iy = 0; iy < height; ++iy) { Glyph* glyph_row = gbuf + iy * width; for (Usz ix = 0; ix < width; ++ix) { - if (markmap_peek(markmap, height, width, iy, ix) & Mark_flag_sleep) + if (mbuffer_peek(mbuf, height, width, iy, ix) & Mark_flag_sleep) continue; Glyph c = glyph_row[ix]; switch (c) { #define X(_oper_name, _oper_char) \ case _oper_char: \ - oper_phase1_##_oper_name(gbuf, markmap, height, width, iy, ix); \ + oper_phase1_##_oper_name(gbuf, mbuf, height, width, iy, ix); \ break; ORCA_OPERATORS(X) #undef X diff --git a/sim.h b/sim.h index 1c87654..a4b2673 100644 --- a/sim.h +++ b/sim.h @@ -2,4 +2,4 @@ #include "base.h" #include "mark.h" -void orca_run(Gbuffer gbuf, Markmap_buffer markmap, Usz height, Usz width); +void orca_run(Gbuffer gbuf, Mbuffer markmap, Usz height, Usz width);