X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_sp%2Fvb_lib.c;fp=src%2Fgame_sp%2Fvb_lib.c;h=5c1dae75010089def694009c81b8c0c7162ed039;hp=d88c8e36061e3d3d67685232923c4c8df4f15e2b;hb=3c080c7b33b6dfcc6e0039b592c5f268535873e7;hpb=e8778d6bd0d375d94521838bf157fa24bfc4b857 diff --git a/src/game_sp/vb_lib.c b/src/game_sp/vb_lib.c index d88c8e36..5c1dae75 100644 --- a/src/game_sp/vb_lib.c +++ b/src/game_sp/vb_lib.c @@ -13,11 +13,30 @@ /* helper functions for constructs not supported by C */ + +#if 1 + +void *REDIM_1D(int data_size, int first_data_pos, int last_data_pos) +{ + /* for a buffer of n elements, first_data_pos is 0 and last_data_pos is n-1 */ + /* a negative value for "first_data_pos" indicates a preceding buffer zone */ + + int data_count = last_data_pos - first_data_pos + 1; + int buffer_size = data_size * data_count; + int buffer_start = data_size * first_data_pos; + + return (checked_calloc(buffer_size) - buffer_start); +} + +#else + void *REDIM_1D(int a, int b, int c) { return checked_calloc(a * (c - b + 1)); } +#endif + void *REDIM_2D(int a, int b, int c, int d, int e) { return 0;