Introduction
Introduction Statistics Contact Development Disclaimer Help
Updated - gnuskii - GNUSki improved for ascii skiing experience.
git clone git://bitreich.org/gnuskii git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws…
Log
Files
Refs
Tags
README
LICENSE
---
commit 674dba49d759addc87c478df97a67b2b9fe5061f
parent 9e459f540a3fda22f4555473cff2f549b3096f76
Author: Rudolf Olah <[email protected]>
Date: Thu, 31 May 2007 11:02:54 -0400
Updated
Diffstat:
A src/objects.c | 143 +++++++++++++++++++++++++++++…
1 file changed, 143 insertions(+), 0 deletions(-)
---
diff --git a/src/objects.c b/src/objects.c
@@ -0,0 +1,143 @@
+/* GNUSki - a clone of the old game Skifree where you race downhill
+ avoiding rocks and trees and try to score points by doing some
+ tricks.
+ Copyright (C) 2007 Rudolf Olah
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "objects.h"
+
+void
+setupColors ()
+{
+ if (has_colors () == false)
+ {
+ endwin ();
+ printf ("*** Your terminal does not support color ***\n");
+ exit (1);
+ }
+ start_color ();
+ init_pair (1, COLOR_GREEN, COLOR_BLACK);
+ init_pair (2, COLOR_WHITE, COLOR_BLACK);
+}
+
+struct Object
+makeObject (enum objectType type, int x, int y)
+{
+ struct Object o;
+ o.type = type;
+ o.x = x;
+ o.y = y;
+ return o;
+}
+
+void
+setPosition (struct Object* o, int x, int y)
+{
+ o->x = x;
+ o->y = y;
+}
+
+void
+moveObject (struct Object* o, char facing, int speed)
+{
+ switch (facing)
+ {
+ case 'n': o->y -= speed; break;
+ case 'e': o->x += speed; break;
+ case 's': o->y += speed; break;
+ case 'w': o->x -= speed; break;
+ case '1': o->y -= speed; o->x -= speed; break;
+ case '2': o->y -= speed; o->x += speed; break;
+ case '3': o->y += speed; o->x += speed; break;
+ case '4': o->y += speed; o->x -= speed; break;
+ }
+}
+
+void
+draw (struct Object o, char facing)
+{
+ switch (o.type)
+ {
+ case skier:
+ switch (facing)
+ {
+ case 'n':
+ case 's':
+ move (o.y, o.x);
+ printw ("||");
+ break;
+ case 'w':
+ move (o.y, o.x);
+ printw ("==");
+ break;
+ case 'e':
+ move (o.y, o.x+1);
+ printw ("==");
+ break;
+ case '1':
+ case '3':
+ move (o.y, o.x);
+ printw ("\\\\");
+ break;
+ case '2':
+ case '4':
+ move (o.y, o.x);
+ printw ("//");
+ break;
+ }
+ break;
+ case tree:
+ attron (COLOR_PAIR (1));
+ move (o.y, o.x);
+ printw ("/|\\");
+ move (o.y+1, o.x);
+ printw ("/|\\");
+ move (o.y+2, o.x);
+ printw (" | ");
+ attroff (COLOR_PAIR (1));
+ break;
+ case rock:
+ attron (COLOR_PAIR (2));
+ move (o.y, o.x);
+ printw ("o");
+ attroff (COLOR_PAIR (2));
+ break;
+ case hill:
+ move (o.y, o.x);
+ printw ("/^\\");
+ case none: default:
+ break;
+ }
+ move (0, 0);
+}
+
+int
+collision (struct Object player, struct Object target)
+{
+ switch (target.type)
+ {
+ case tree:
+ return player.y == target.y+2 && player.x == target.x+1;
+ break;
+ case rock:
+ return player.y == target.y && player.x == target.x;
+ break;
+ case none: default:
+ return 0;
+ }
+ return 0;
+}
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.