Files
Descent3/Descent3/aipath.h
C.W. Betts c6da74b069 Mark functions and variables as static (#185)
* Begin by marking functions and variables as static when needed.

* More work.

* More work.

* More pokes.

* More work.

* More work.

* Initial work on the netgames.

* Revert changes to the license header on source files.

* clutter.cpp poke.

* One final poke.

* Move some declarations to headers:

Move paged_in_count and paged_in_num to gamesequence.h
Move DoneLightInstance and StartLightInstance to polymodel.h

* Look over the AI script/plug-ins.

* Going over the changes one last time.

* Fix rebase errors.

* More migration from bare statics to static inlines.
2024-05-07 23:35:28 +02:00

50 lines
1.9 KiB
C

/*
* Descent 3
* Copyright (C) 2024 Parallax Software
*
* 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 3 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, see <http://www.gnu.org/licenses/>.
*/
#ifndef AIPATH_H_
#define AIPATH_H_
#include "object.h"
#include "pstypes.h"
#include "aistruct.h"
// Exported functions
extern void AIPathMoveTurnTowardsNode(object *obj, vector *mdir, bool *f_moved);
// void AIPathMoveTowardsRoom(object *obj, int room_index);
extern bool AIPathSetAsStaticPath(object *obj, void *goal_ptr, int path_id, int start_node, int end_node, int cur_node);
extern bool AIPathAllocPath(object *obj, ai_frame *ai_info, void *goal_ptr, int *start_room, vector *start_pos,
int *end_room, vector *end_pos, float rad, int flags, int handle, int ignore_obj = -1);
extern bool AIPathInitPath(ai_path_info *aip);
extern bool AIPathFreePath(ai_path_info *aip);
extern bool AIFindAltPath(object *obj, int i, int j, float *dist = NULL);
extern bool AIPathAtEnd(ai_path_info *aip);
extern bool AIPathAtStart(ai_path_info *aip);
extern bool AIPathGetNextNodePos(ai_path_info *aip, vector *pos, int *room = NULL);
extern bool AIPathGetPrevNodePos(ai_path_info *aip, vector *pos, int *room = NULL);
extern bool AIPathGetCurrentNodePos(ai_path_info *aip, vector *pos, int *room = NULL);
#ifdef _DEBUG
extern bool MakeTestPath(int *start_room, vector *pos);
extern int AIPath_test_end_room;
extern vector AIPath_test_end_pos;
#endif
#endif