Freeciv21
Develop your civilization from humble roots to a global empire
fc_interface.h
Go to the documentation of this file.
1 /*__ ___ ***************************************
2 / \ / \ Copyright (c) 1996-2020 Freeciv21 and Freeciv
3 \_ \ / __/ contributors. This file is part of Freeciv21.
4  _\ \ / /__ Freeciv21 is free software: you can redistribute it
5  \___ \____/ __/ and/or modify it under the terms of the GNU General
6  \_ _/ Public License as published by the Free Software
7  | @ @ \_ Foundation, either version 3 of the License,
8  | or (at your option) any later version.
9  _/ /\ You should have received a copy of the GNU
10  /o) (o/\ \_ General Public License along with Freeciv21.
11  \_____/ / If not, see https://www.gnu.org/licenses/.
12  \____/ ********************************************************/
13 #pragma once
14 
15 // common
16 #include "vision.h"
17 
18 struct player;
19 struct tile;
20 struct color;
21 struct extra_type;
22 
23 // The existence of each function should be checked in interface_init()!
24 struct functions {
26  const char *(*server_setting_name_get)(server_setting_id id);
27  enum sset_type (*server_setting_type_get)(server_setting_id id);
31  void (*create_extra)(struct tile *ptile, const extra_type *pextra,
32  struct player *pplayer);
33  void (*destroy_extra)(struct tile *ptile, struct extra_type *pextra);
34  /* Returns iff the player 'pplayer' has the vision in the layer
35  'vision' at tile given by 'ptile'. */
36  bool (*player_tile_vision_get)(const struct tile *ptile,
37  const struct player *pplayer,
38  enum vision_layer vision);
39  /* Returns the id of the city 'pplayer' believes exists at 'ptile' or
40  * IDENTITY_NUMBER_ZERO when the player is unaware of a city at that
41  * location. */
42  int (*player_tile_city_id_get)(const struct tile *ptile,
43  const struct player *pplayer);
44 };
45 
46 extern const struct functions *fc_funcs;
47 
49 void fc_interface_init();
50 void free_libfreeciv();
const struct functions * fc_funcs
void free_libfreeciv()
Free misc resources allocated for libfreeciv.
struct functions * fc_interface_funcs()
Return the function pointer.
void fc_interface_init()
Test and initialize the functions.
int server_setting_id
Definition: fc_types.h:893
const char * name
Definition: inputfile.cpp:118
int(* player_tile_city_id_get)(const struct tile *ptile, const struct player *pplayer)
Definition: fc_interface.h:42
int(* server_setting_val_int_get)(server_setting_id id)
Definition: fc_interface.h:29
void(* create_extra)(struct tile *ptile, const extra_type *pextra, struct player *pplayer)
Definition: fc_interface.h:31
bool(* player_tile_vision_get)(const struct tile *ptile, const struct player *pplayer, enum vision_layer vision)
Definition: fc_interface.h:36
bool(* server_setting_val_bool_get)(server_setting_id id)
Definition: fc_interface.h:28
void(* destroy_extra)(struct tile *ptile, struct extra_type *pextra)
Definition: fc_interface.h:33
server_setting_id(* server_setting_by_name)(const char *name)
Definition: fc_interface.h:25
unsigned int(* server_setting_val_bitwise_get)(server_setting_id id)
Definition: fc_interface.h:30
enum sset_type(* server_setting_type_get)(server_setting_id id)
Definition: fc_interface.h:27
Definition: player.h:231
Definition: tile.h:42
Definition: vision.h:83