summaryrefslogtreecommitdiff
path: root/src/iso/simgraph.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/iso/simgraph.h')
-rw-r--r--src/iso/simgraph.h159
1 files changed, 159 insertions, 0 deletions
diff --git a/src/iso/simgraph.h b/src/iso/simgraph.h
new file mode 100644
index 00000000..938edb95
--- /dev/null
+++ b/src/iso/simgraph.h
@@ -0,0 +1,159 @@
+/* simgraph.h
+ *
+ * Copyright (c) 2001 Hansjörg Malthaner
+ * hansjoerg.malthaner@gmx.de
+ *
+ * This file is part of the Simugraph graphics engine.
+ *
+ *
+ * This file may be copied and modified freely so long as the above credits,
+ * this paragraph, and the below disclaimer of warranty are retained; no
+ * financial profit is derived from said modification or copying; and all
+ * licensing rights to any modifications are granted to the original author,
+ * Hansjörg Malthaner.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* simgraph.h
+ *
+ * Versuch einer Graphic fuer Simulationsspiele
+ * Hj. Malthaner, Aug. 1997
+ *
+ *
+ * 3D, isometrische Darstellung
+ *
+ */
+
+#ifndef simgraph_h
+#define simgraph_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
+#define LINESPACE 11
+
+
+struct clip_dimension {
+ int x, xx, w, y, yy, h;
+};
+
+
+// helper macros
+
+// save the current clipping and set a new one
+#define PUSH_CLIP(x,y,w,h) \
+{\
+const struct clip_dimension p_cr = display_gib_clip_wh(); \
+display_setze_clip_wh(x, y, w, h);
+
+// restore a saved clipping rect
+#define POP_CLIP() \
+display_setze_clip_wh(p_cr.x, p_cr.y, p_cr.w, p_cr.h); \
+}
+
+
+// function prototypes
+
+int simgraph_init(int width, int height);
+int is_display_init();
+int simgraph_exit();
+
+int gib_maus_x();
+int gib_maus_y();
+
+void mark_rect_dirty_wc(int x1, int y1, int x2, int y2);
+
+
+/**
+ * returns the currently used tile size in pixels
+ *
+ * @author Hj. Malthaner
+ */
+int display_get_tile_size();
+
+
+/**
+ * selects a tile size
+ *
+ * @param n 0 means 64x64 tiles, 1 are 32x32 tiles
+ * @author Hj. Malthaner
+ */
+void display_select_tile_size(int n);
+
+
+
+int display_get_width();
+int display_get_height();
+
+
+int display_get_light();
+void display_set_light(int new_light_level);
+
+int display_get_color();
+void display_set_color(int new_color_level);
+
+void display_day_night_shift(int night);
+
+//void display_set_rgb(int n, int r, int g, int b);
+void display_set_player_colors(const unsigned char *day, const unsigned char *night);
+
+void display_img(const int n, const int xp, const int yp, const int dirty);
+void display_color_img(const int n, const int xp, const int yp, const int color, const int dirty);
+void display_fillbox_wh(int xp, int yp, int w, int h, int color, int dirty);
+void display_fillbox_wh_clip(int xp, int yp, int w, int h, int color, int d);
+void display_vline_wh(const int xp, int yp, int h, const int color, int dirty);
+void display_vline_wh_clip(const int xp, int yp, int h, const int c, int d);
+void display_clear();
+
+void display_flush_buffer();
+
+void display_move_pointer(int dx, int dy);
+void display_show_pointer(int yesno);
+
+
+void display_pixel(int x, int y, int color);
+
+void display_ddd_text(int xpos, int ypos, int hgt,
+ int ddd_farbe, int text_farbe,
+ const char *text, int dirty);
+
+void display_text(int x, int y, const char *txt, const int color, int dirty);
+void display_array_wh(int xp, int yp, int w, int h, const unsigned char *arr);
+void display_ddd_box(int x1, int y1, int w, int h, int tl_color, int rd_color);
+
+// compound painting routines
+
+int count_char(const char *str, const char c);
+void display_multiline_text(int x, int y, const char *inbuf, int color);
+
+void zeige_banner(void);
+
+void display_setze_clip_wh(int x, int y, int w, int h);
+struct clip_dimension display_gib_clip_wh(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif