engine: reject mbf21 and shit24 wads. there is no way to know if it is safe to ignore...
[k8vavoom.git] / source / utils / ntvalueioex.h
blobe1295ce3d3ae080a8abfb093a0f8d4d500214b27
1 //**************************************************************************
2 //**
3 //** ## ## ## ## ## #### #### ### ###
4 //** ## ## ## ## ## ## ## ## ## ## #### ####
5 //** ## ## ## ## ## ## ## ## ## ## ## ## ## ##
6 //** ## ## ######## ## ## ## ## ## ## ## ### ##
7 //** ### ## ## ### ## ## ## ## ## ##
8 //** # ## ## # #### #### ## ##
9 //**
10 //** Copyright (C) 2019-2023 Ketmar Dark
11 //**
12 //** This program is free software: you can redistribute it and/or modify
13 //** it under the terms of the GNU General Public License as published by
14 //** the Free Software Foundation, version 3 of the License ONLY.
15 //**
16 //** This program is distributed in the hope that it will be useful,
17 //** but WITHOUT ANY WARRANTY; without even the implied warranty of
18 //** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 //** GNU General Public License for more details.
20 //**
21 //** You should have received a copy of the GNU General Public License
22 //** along with this program. If not, see <http://www.gnu.org/licenses/>.
23 //**
24 //**************************************************************************
25 //**
26 //** extended NTValue-based I/O
27 //**
28 //**************************************************************************
29 #ifndef VAVOOM_NTVALUEEX_HEADER
30 #define VAVOOM_NTVALUEEX_HEADER
33 // ////////////////////////////////////////////////////////////////////////// //
34 class VNTValueIOEx : public VNTValueIO {
35 public:
36 VStr prefix;
38 protected:
39 VName transformName (VName vname) const;
41 public:
42 VNTValueIOEx (VStream *astrm);
44 // fuck you, shitplusplus!
45 virtual void iodef (VName vname, vint32 &v, vint32 defval) override;
46 virtual void iodef (VName vname, vuint32 &v, vuint32 defval) override;
47 virtual void iodef (VName vname, float &v, float defval) override;
48 virtual void iodef (VName vname, TVec &v, const TVec defval) override;
49 virtual void iodef (VName vname, VName &v, VName defval) override;
50 virtual void iodef (VName vname, VStr &v, VStr defval) override;
52 virtual void io (VName vname, vint32 &v) override;
53 virtual void io (VName vname, vuint32 &v) override;
54 virtual void io (VName vname, float &v) override;
55 virtual void io (VName vname, TVec &v) override;
56 virtual void io (VName vname, VName &v) override;
57 virtual void io (VName vname, VStr &v) override;
58 virtual void io (VName vname, VClass *&v) override;
59 virtual void io (VName vname, VObject *&v) override;
60 virtual void io (VName vname, VSerialisable *&v) override;
62 virtual void io (VName vname, VTextureID &v);
64 virtual void io (VName vname, VThinker *&v);
65 virtual void io (VName vname, VEntity *&v);
67 virtual void io (VName vname, vuint8 &v);
71 #endif