summaryrefslogtreecommitdiff
path: root/src/being.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/being.h')
-rw-r--r--src/being.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/being.h b/src/being.h
new file mode 100644
index 00000000..d1dcdb31
--- /dev/null
+++ b/src/being.h
@@ -0,0 +1,80 @@
+/**
+
+ The Mana World
+ Copyright 2004 The Mana World Development Team
+
+ This file is part of The Mana World.
+
+ The Mana World 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
+ any later version.
+
+ The Mana World 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 The Mana World; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef _BEING_H
+#define _BEING_H
+
+#include "./Net/protocol.h"
+
+#define ACTION_NODE 0
+#define PLAYER_NODE 1
+#define NPC_NODE 2
+#define MONSTER_NODE 3
+
+struct PATH_NODE {
+ unsigned short x, y;
+ PATH_NODE *next;
+};
+
+struct NODE {
+ unsigned int id;
+ short job;
+ char coordinates[3];
+ NODE *next;
+ unsigned char type;
+ unsigned char action;
+ unsigned char frame;
+ PATH_NODE *path;
+ char *speech;
+ unsigned char speech_time;
+ int speech_color;
+ short tick_time;
+ short speed;
+ unsigned char emotion;
+ unsigned char emotion_time;
+ int text_x, text_y; // temp solution to fix speech position
+};
+
+void empty();
+NODE *get_head();
+NODE *create_node();
+PATH_NODE *create_path_node(unsigned short x, unsigned short y);
+void add_node(NODE *node);
+NODE *find_node(unsigned int id);
+void remove_node(unsigned int id);
+unsigned int get_count();
+bool remove_being(char *data);
+void remove_being(unsigned int id);
+int get_beings_size();
+bool is_being(int id);
+void popup_being(unsigned char type, char *data);
+void move_being(char *data);
+PATH_NODE *calculate_path(unsigned short src_x, unsigned short src_y, unsigned short dest_x, unsigned short dest_y);
+unsigned int get_id(NODE *node);
+unsigned int find_npc(unsigned short x, unsigned short y);
+unsigned int find_monster(unsigned short x, unsigned short y);
+void sort();
+
+extern NODE *player_node;
+
+#endif