22#ifndef MADS_CORE_ENV_H
23#define MADS_CORE_ENV_H
25#include "common/stream.h"
26#include "mads/core/general.h"
35 virtual bool exists(
const char *filename) = 0;
36 virtual bool allowsFallback(
const char *)
const {
return true; }
40 virtual int getCursorCount()
const {
return 0; }
41 virtual bool setCursor(
int) {
return false; }
42 virtual void updateCursor() {}
45#define MADS_ENV "MADS"
46#define MADS_PRIV_ENV "MADSPRIV"
47#define MADS_SOUND_ENV "MADSOUND"
49#define MADS_PRIV_ARTIST 0x01
50#define MADS_PRIV_DESIGNER 0x02
51#define MADS_PRIV_PROGRAM 0x04
52#define MADS_PRIV_SYSTEM 0x08
54#define ENV_CONFIGNAME "*options.cfg"
56#define ENV_SEARCH_MADS_PATH 0
57#define ENV_SEARCH_CONCAT_FILES 1
60#define ENV_INTERFACE 17
82extern int env_search_mode;
83extern int env_search_cd;
84extern char env_cd_drive;
85extern int env_privileges;
86extern int env_sound_override;
87extern long env_concat_file_size;
88extern char env_null[7];
92extern int env_get_cursor_count();
93extern bool env_set_cursor(
int id);
94extern void env_update_cursor();
96extern int env_verify();
98extern int env_exist(
const char *file_name);
100extern char *env_get_path(
char *madspath,
const char *infile);
101extern char *env_catint(
char *out,
int value,
int digits);
102extern char *env_fill_path(
char *path,
int env_mode,
int env_room);
103extern char *env_get_level_path(
char *out,
int item_type,
const char *file_spec,
104 int first_level,
int second_level);
106 int level_one,
int level_two,
const char *options);
107extern char *env_get(
char *target,
const char *env);
114extern char *env_next(
char *variable);
120extern char *env_find_end(
char *environment);
126extern int env_size(
char *environment);
128extern int env_free(
char *environment);
135extern char *env_find(
char *environment,
const char *variable);
141extern void env_delete(
char *environment,
const char *variable);
148extern int env_insert(
char *environment,
const char *variable,
const char *value);