1 //**************************************************************************
3 //** ## ## ## ## ## #### #### ### ###
4 //** ## ## ## ## ## ## ## ## ## ## #### ####
5 //** ## ## ## ## ## ## ## ## ## ## ## ## ## ##
6 //** ## ## ######## ## ## ## ## ## ## ## ### ##
7 //** ### ## ## ### ## ## ## ## ## ##
8 //** # ## ## # #### #### ## ##
10 //** Copyright (C) 2019-2023 Ketmar Dark
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.
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.
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/>.
24 //**************************************************************************
26 //** extended NTValue-based I/O
28 //**************************************************************************
29 #ifndef VAVOOM_NTVALUEEX_HEADER
30 #define VAVOOM_NTVALUEEX_HEADER
33 // ////////////////////////////////////////////////////////////////////////// //
34 class VNTValueIOEx
: public VNTValueIO
{
39 VName
transformName (VName vname
) const;
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
);