By fteqcc, hello gmqcc
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Mon, 10 Jun 2013 21:18:35 +0000 (00:18 +0300)
committerMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Mon, 10 Jun 2013 21:19:38 +0000 (00:19 +0300)
209 files changed:
misc/source/fteqcc-src/LICENSE [deleted file]
misc/source/fteqcc-src/Makefile [deleted file]
misc/source/fteqcc-src/cmdlib.h [deleted file]
misc/source/fteqcc-src/comprout.c [deleted file]
misc/source/fteqcc-src/dotnet2008/qcc.sln [deleted file]
misc/source/fteqcc-src/dotnet2008/qcc.vcproj [deleted file]
misc/source/fteqcc-src/dotnet2010/qcc.sln [deleted file]
misc/source/fteqcc-src/dotnet2010/qcc.vcxproj [deleted file]
misc/source/fteqcc-src/execloop.h [deleted file]
misc/source/fteqcc-src/gui.h [deleted file]
misc/source/fteqcc-src/hash.c [deleted file]
misc/source/fteqcc-src/hash.h [deleted file]
misc/source/fteqcc-src/initlib.c [deleted file]
misc/source/fteqcc-src/pr_comp.h [deleted file]
misc/source/fteqcc-src/pr_edict.c [deleted file]
misc/source/fteqcc-src/pr_exec.c [deleted file]
misc/source/fteqcc-src/pr_multi.c [deleted file]
misc/source/fteqcc-src/pr_x86.c [deleted file]
misc/source/fteqcc-src/progsint.h [deleted file]
misc/source/fteqcc-src/progslib.h [deleted file]
misc/source/fteqcc-src/progtype.h [deleted file]
misc/source/fteqcc-src/qcc.h [deleted file]
misc/source/fteqcc-src/qcc_cmdlib.c [deleted file]
misc/source/fteqcc-src/qcc_pr_comp.c [deleted file]
misc/source/fteqcc-src/qcc_pr_lex.c [deleted file]
misc/source/fteqcc-src/qccgui.c [deleted file]
misc/source/fteqcc-src/qccguistuff.c [deleted file]
misc/source/fteqcc-src/qccmain.c [deleted file]
misc/source/fteqcc-src/qcctui.c [deleted file]
misc/source/fteqcc-src/qcd.h [deleted file]
misc/source/fteqcc-src/qcd_main.c [deleted file]
misc/source/fteqcc-src/qcdecomp.c [deleted file]
misc/source/fteqcc-src/readme.txt [deleted file]
misc/source/fteqcc-src/test.c [deleted file]
misc/source/fteqcc-src/vc6/qcc.dsp [deleted file]
misc/source/fteqcc-src/vc6/qcc.dsw [deleted file]
misc/source/gmqcc-src/.travis.yml [new file with mode: 0644]
misc/source/gmqcc-src/AUTHORS [new file with mode: 0644]
misc/source/gmqcc-src/CHANGES [new file with mode: 0644]
misc/source/gmqcc-src/INSTALL [new file with mode: 0644]
misc/source/gmqcc-src/LICENSE [new file with mode: 0644]
misc/source/gmqcc-src/Makefile [new file with mode: 0644]
misc/source/gmqcc-src/README [new file with mode: 0644]
misc/source/gmqcc-src/TODO [new file with mode: 0644]
misc/source/gmqcc-src/ast.c [new file with mode: 0644]
misc/source/gmqcc-src/ast.h [new file with mode: 0644]
misc/source/gmqcc-src/code.c [new file with mode: 0644]
misc/source/gmqcc-src/conout.c [new file with mode: 0644]
misc/source/gmqcc-src/correct.c [new file with mode: 0644]
misc/source/gmqcc-src/distro/Makefile [new file with mode: 0644]
misc/source/gmqcc-src/distro/deb/Makefile [new file with mode: 0644]
misc/source/gmqcc-src/distro/gentoo/INSTALL [new file with mode: 0644]
misc/source/gmqcc-src/distro/gentoo/gmqcc-0.3.0.ebuild [new file with mode: 0644]
misc/source/gmqcc-src/distro/slackware/this/Makefile [new file with mode: 0644]
misc/source/gmqcc-src/distro/slackware/this/slack-desc [new file with mode: 0644]
misc/source/gmqcc-src/distro/win32/Makefile [new file with mode: 0644]
misc/source/gmqcc-src/doc/gmqcc.1 [new file with mode: 0644]
misc/source/gmqcc-src/doc/gmqpak.1 [new file with mode: 0644]
misc/source/gmqcc-src/doc/html/download.c [new file with mode: 0644]
misc/source/gmqcc-src/doc/html/gmqcc.png [new file with mode: 0644]
misc/source/gmqcc-src/doc/html/style.css [new file with mode: 0644]
misc/source/gmqcc-src/doc/qcvm.1 [new file with mode: 0644]
misc/source/gmqcc-src/doc/specification.tex [new file with mode: 0644]
misc/source/gmqcc-src/exec.c [new file with mode: 0644]
misc/source/gmqcc-src/fs.c [new file with mode: 0644]
misc/source/gmqcc-src/ftepp.c [new file with mode: 0644]
misc/source/gmqcc-src/gmqcc.h [new file with mode: 0644]
misc/source/gmqcc-src/gmqcc.ini.example [new file with mode: 0644]
misc/source/gmqcc-src/intrin.h [new file with mode: 0644]
misc/source/gmqcc-src/ir.c [new file with mode: 0644]
misc/source/gmqcc-src/ir.h [new file with mode: 0644]
misc/source/gmqcc-src/lexer.c [new file with mode: 0644]
misc/source/gmqcc-src/lexer.h [new file with mode: 0644]
misc/source/gmqcc-src/main.c [new file with mode: 0644]
misc/source/gmqcc-src/misc/check-doc.sh [new file with mode: 0644]
misc/source/gmqcc-src/msvc/gmqcc.sln [new file with mode: 0644]
misc/source/gmqcc-src/msvc/pak/pak.vcxproj [new file with mode: 0644]
misc/source/gmqcc-src/msvc/pak/pak.vcxproj.filters [new file with mode: 0644]
misc/source/gmqcc-src/opts.c [new file with mode: 0644]
misc/source/gmqcc-src/opts.def [new file with mode: 0644]
misc/source/gmqcc-src/pak.c [new file with mode: 0644]
misc/source/gmqcc-src/parser.c [new file with mode: 0644]
misc/source/gmqcc-src/stat.c [new file with mode: 0644]
misc/source/gmqcc-src/syntax/README [new file with mode: 0644]
misc/source/gmqcc-src/syntax/geany/README [new file with mode: 0644]
misc/source/gmqcc-src/syntax/geany/filetypes.qc [new file with mode: 0644]
misc/source/gmqcc-src/syntax/gtksourceview/README [new file with mode: 0644]
misc/source/gmqcc-src/syntax/gtksourceview/qc.lang [new file with mode: 0644]
misc/source/gmqcc-src/syntax/jedit/README [new file with mode: 0644]
misc/source/gmqcc-src/syntax/jedit/qc.xml [new file with mode: 0644]
misc/source/gmqcc-src/syntax/kate/README [new file with mode: 0644]
misc/source/gmqcc-src/syntax/kate/qc.xml [new file with mode: 0644]
misc/source/gmqcc-src/syntax/nano/README [new file with mode: 0644]
misc/source/gmqcc-src/syntax/nano/qc.nanorc [new file with mode: 0644]
misc/source/gmqcc-src/test.c [new file with mode: 0644]
misc/source/gmqcc-src/tests/aliases.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/aliases.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/arrays.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/arrays.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/bitnot.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/bitnot.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/break.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/break.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/builtin.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/builtin.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/calls.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/calls.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/correct-logic-1-s.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/correct-logic-1.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/correct-logic-2-s.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/correct-logic-2.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/correct-logic.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/correct-vs-short-1.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/correct-vs-short-2.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/correct-vs-short-3.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/correct-vs-short.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/defs.qh [new file with mode: 0644]
misc/source/gmqcc-src/tests/enum.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/enum.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/equality.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/equality.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/exponentiation.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/exponentiation.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/exprforbuiltins.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/exprforbuiltins.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/fieldparams.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/fieldparams.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/functions-as-params.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/functions-as-params.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/goto.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/goto.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/ifs.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/ifs.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/mul_vf.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/mul_vf.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/ngraphs.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/ngraphs.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/noref.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/noref.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/noreturn.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/noreturn1.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/noreturn2.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/noreturn3.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/noreturn4.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/operators.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/operators.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/param8.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/param8.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/parens.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/parens.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/perl-logic.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/perl-logic.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/pmacros.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/pmacros.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/pointlife.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/pointlife.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/pops.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/pops.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/pp_va_args.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/pp_va_args.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/ppcat.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/ppcat.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/pperror.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/pperror.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/predef_func.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/predef_func.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/predef_func_concat.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/rassign.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/rassign.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/short-logic.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/short-logic.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/switch.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/switch.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/ternary-fte.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/ternary.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/ternary.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth-flags-1-s.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth-flags-1.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth-flags-2-s.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth-flags-2.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth-flags-2.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth-flags-3-s.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth-flags-3.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth2.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/truth3.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/typedefs.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/typedefs.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/uninit.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/uninit.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/uninit2.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/utf8-2.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/utf8.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/utf8.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/varargs.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/varargs.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/varargs2.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/varargs2.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/variadic.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/variadic.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/vec_ops.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/vec_ops.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/vector-init.qc [new file with mode: 0644]
misc/source/gmqcc-src/tests/vector-init.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/vector-init2.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/tests/vector-init3.tmpl [new file with mode: 0644]
misc/source/gmqcc-src/utf8.c [new file with mode: 0644]
misc/source/gmqcc-src/util.c [new file with mode: 0644]

diff --git a/misc/source/fteqcc-src/LICENSE b/misc/source/fteqcc-src/LICENSE
deleted file mode 100644 (file)
index 2f3289a..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-GNU GENERAL PUBLIC LICENSE
-Version 2, June 1991 
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
-59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-Preamble
-The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. 
-
-When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. 
-
-To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. 
-
-For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. 
-
-We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. 
-
-Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. 
-
-Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. 
-
-The precise terms and conditions for copying, distribution and modification follow. 
-
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". 
-
-Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 
-
-1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. 
-
-You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 
-
-2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: 
-
-
-a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. 
-
-b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. 
-
-c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) 
-These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. 
-Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. 
-
-In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 
-
-3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: 
-
-a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, 
-
-b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, 
-
-c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) 
-The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. 
-If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 
-
-4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 
-
-5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 
-
-6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 
-
-7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. 
-
-If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. 
-
-It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. 
-
-This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 
-
-8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 
-
-9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. 
-
-Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 
-
-10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. 
-
-NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
-
-
-END OF TERMS AND CONDITIONS
diff --git a/misc/source/fteqcc-src/Makefile b/misc/source/fteqcc-src/Makefile
deleted file mode 100644 (file)
index 786d22e..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-COMMON_OBJS=comprout.o hash.o qcc_cmdlib.o qcd_main.o
-QCC_OBJS=qccmain.o qcc_pr_comp.o qcc_pr_lex.o
-VM_OBJS=pr_exec.o pr_edict.o pr_multi.o initlib.o qcdecomp.o
-GTKGUI_OBJS=qcc_gtk.o qccguistuff.o
-WIN32GUI_OBJS=qccgui.o qccguistuff.o
-TUI_OBJS=qcctui.o
-LIB_OBJS=
-
-CC?=gcc
-CFLAGS?=-Wall
-
-all: qcc
-
-USEGUI_CFLAGS=
-# set to -DUSEGUI when compiling the GUI
-BASE_CFLAGS=-ggdb $(USEGUI_CFLAGS)
-
-BASE_LDFLAGS=-s
-# set to "" for debugging
-
-DO_CC=$(CC) $(BASE_CFLAGS) -o $@ -c $< $(CFLAGS)
-
-lib: 
-
-R_win_nocyg: $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS)
-       $(CC) $(BASE_CFLAGS) -o fteqcc.exe -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS) -mno-cygwin -mwindows -lcomctl32
-R_nocyg: $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS)
-       $(CC) $(BASE_CFLAGS) -o fteqcc.exe -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS) -mno-cygwin -lcomctl32
-R_win: $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS)
-       $(CC) $(BASE_CFLAGS) -o fteqcc.exe -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(COMMON_OBJS) $(WIN32GUI_OBJS) -mwindows -lcomctl32
-
-win_nocyg:
-       $(MAKE) USEGUI_CFLAGS="-DUSEGUI -DQCCONLY" R_win_nocyg
-nocyg:
-       $(MAKE) USEGUI_CFLAGS="-DUSEGUI -DQCCONLY" R_nocyg
-win:
-       $(MAKE) USEGUI_CFLAGS="-DUSEGUI -DQCCONLY" R_win
-
-R_qcc: $(QCC_OBJS) $(COMMON_OBJS) $(TUI_OBJS)
-       $(CC) $(BASE_CFLAGS) -o fteqcc.bin -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(TUI_OBJS) $(COMMON_OBJS)
-qcc:
-       $(MAKE) USEGUI_CFLAGS="" R_qcc
-
-qccmain.o: qccmain.c qcc.h
-       $(DO_CC)
-
-qcc_cmdlib.o: qcc_cmdlib.c qcc.h
-       $(DO_CC)
-
-qcc_pr_comp.o: qcc_pr_comp.c qcc.h
-       $(DO_CC)
-
-qcc_pr_lex.o: qcc_pr_lex.c qcc.h
-       $(DO_CC)
-
-comprout.o: comprout.c qcc.h
-       $(DO_CC)
-
-hash.o: hash.c qcc.h
-       $(DO_CC)
-
-qcd_main.o: qcd_main.c qcc.h
-       $(DO_CC)
-
-qccguistuff.o: qccguistuff.c qcc.h
-       $(DO_CC)
-
-qcc_gtk.o: qcc_gtk.c qcc.h
-       $(DO_CC) `pkg-config --cflags gtk+-2.0`
-
-R_gtkgui: $(QCC_OBJS) $(COMMON_OBJS) $(GTKGUI_OBJS)
-       $(CC) $(BASE_CFLAGS) $(USEGUI_CFLAGS) -o fteqccgui.bin -O3 $(GTKGUI_OBJS) $(QCC_OBJS) $(COMMON_OBJS) `pkg-config --libs gtk+-2.0`
-gtkgui:
-       $(MAKE) USEGUI_CFLAGS="-DUSEGUI -DQCCONLY" R_gtkgui
-
-clean:
-       $(RM) fteqcc.bin fteqcc.exe $(QCC_OBJS) $(COMMON_OBJS) $(VM_OBJS) $(GTKGUI_OBJS) $(WIN32GUI_OBJS) $(TUI_OBJS)
-
-qcvm.so: $(QCC_OBJS) $(VM_OBJS) $(COMMON_OBJS)
-       $(CC) $(BASE_CFLAGS) -o $@ -O3 $(BASE_LDFLAGS) $(QCC_OBJS) $(VM_OBJS) $(COMMON_OBJS) -shared
-
-
-test.o: test.c
-       $(DO_CC)
-
-testapp.bin: qcvm.so test.o
-       $(CC) $(BASE_CFLAGS) -o testapp.bin -O3 $(BASE_LDFLAGS) qcvm.so test.o
-
-regressiontest: testapp.bin
-       ./testapp.bin regression.dat -srcfile regression.src
diff --git a/misc/source/fteqcc-src/cmdlib.h b/misc/source/fteqcc-src/cmdlib.h
deleted file mode 100644 (file)
index 768d899..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// cmdlib.h
-
-#ifndef __CMDLIB__
-#define __CMDLIB__
-
-#include "progsint.h"
-
-/*#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdarg.h>
-#include <setjmp.h>
-#include <io.h>
-
-#ifdef NeXT
-#include <libc.h>
-#endif
-*/
-
-// the dec offsetof macro doesn't work very well...
-#define myoffsetof(type,identifier) ((size_t)&((type *)NULL)->identifier)
-
-
-// set these before calling CheckParm
-extern int myargc;
-extern char **myargv;
-
-//char *strupr (char *in);
-//char *strlower (char *in);
-int QCC_filelength (int handle);
-int QCC_tell (int handle);
-
-int QC_strcasecmp (const char *s1, const char *s2);
-
-#ifdef _MSC_VER
-#define QC_vsnprintf _vsnprintf
-#else
-#define QC_vsnprintf vsnprintf
-#endif
-
-#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
-       #ifndef LIKEPRINTF
-               #define LIKEPRINTF(x) __attribute__((format(printf,x,x+1)))
-       #endif
-#endif
-#ifndef LIKEPRINTF
-#define LIKEPRINTF(x)
-#endif
-
-double I_FloatTime (void);
-
-void   VARGS QCC_Error (int errortype, const char *error, ...) LIKEPRINTF(2);
-int            CheckParm (char *check);
-
-
-int    SafeOpenWrite (char *filename, int maxsize);
-int    SafeOpenRead (char *filename);
-void   SafeRead (int handle, void *buffer, long count);
-void   SafeWrite (int handle, void *buffer, long count);
-void   SafeClose(int handle);
-int SafeSeek(int hand, int ofs, int mode);
-void   *SafeMalloc (long size);
-
-
-long   QCC_LoadFile (char *filename, void **bufferptr);
-void   QCC_SaveFile (char *filename, void *buffer, long count);
-
-void   DefaultExtension (char *path, char *extension);
-void   DefaultPath (char *path, char *basepath);
-void   StripFilename (char *path);
-void   StripExtension (char *path);
-
-void   ExtractFilePath (char *path, char *dest);
-void   ExtractFileBase (char *path, char *dest);
-void   ExtractFileExtension (char *path, char *dest);
-
-long   ParseNum (char *str);
-
-
-char *QCC_COM_Parse (char *data);
-char *QCC_COM_Parse2 (char *data);
-
-extern char    qcc_token[1024];
-extern int             qcc_eof;
-
-
-
-#endif
diff --git a/misc/source/fteqcc-src/comprout.c b/misc/source/fteqcc-src/comprout.c
deleted file mode 100644 (file)
index a2a7a3b..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-//compile routines
-
-#include "qcc.h"
-#undef progfuncs
-
-char errorfile[128];
-int errorline;
-
-progfuncs_t *qccprogfuncs;
-
-#include <setjmp.h>
-
-extern int qcc_compileactive;
-jmp_buf qcccompileerror;
-char qcc_gamedir[128];
-void QCC_PR_ResetErrorScope(void);
-
-
-
-#ifdef MINIMAL
-
-#else
-
-int qccalloced;
-int qcchunksize;
-char *qcchunk;
-void *qccHunkAlloc(size_t mem)
-{
-       mem = (mem + 7)&~7;
-
-       qccalloced+=mem;
-       if (qccalloced > qcchunksize)
-               QCC_Error(ERR_INTERNAL, "Compile hunk was filled");
-
-       memset(qcchunk+qccalloced-mem, 0, mem);
-       return qcchunk+qccalloced-mem;
-}
-void qccClearHunk(void)
-{
-       if (qcchunk)
-       {
-               free(qcchunk);
-               qcchunk=NULL;
-       }
-}
-int qccpersisthunk;
-void PostCompile(void)
-{
-       if (!qccpersisthunk)
-               qccClearHunk();
-
-       if (asmfile)
-       {
-               fclose(asmfile);
-               asmfile = NULL;
-       }       
-}
-pbool PreCompile(void)
-{
-       QCC_PR_ResetErrorScope();
-
-       qccClearHunk();
-       strcpy(qcc_gamedir, "");
-       qcchunk = malloc(qcchunksize=128*1024*1024);
-       while(!qcchunk && qcchunksize > 8*1024*1024)
-       {
-               qcchunksize /= 2;
-               qcchunk = malloc(qcchunksize);
-       }
-       qccalloced=0;
-
-       return !!qcchunk;
-}
-
-void QCC_main (int argc, char **argv);
-void QCC_ContinueCompile(void);
-void QCC_FinishCompile(void);
-
-int comp_nump;char **comp_parms;
-//void Editor(char *fname, int line, int numparms, char **compileparms);
-pbool CompileParams(progfuncs_t *progfuncs, int doall, int nump, char **parms)
-{
-       comp_nump = nump;
-       comp_parms = parms;
-       *errorfile = '\0';
-       qccprogfuncs = progfuncs;
-       if (setjmp(qcccompileerror))
-       {
-               PostCompile();
-               if (*errorfile)
-               {
-                       if (!externs->useeditor)
-                               printf("Error in %s on line %i\n", errorfile, errorline);
-                       else
-                               externs->useeditor(progfuncs, errorfile, errorline, nump, parms);
-               }
-               return false;
-       }
-
-       if (!PreCompile())
-               return false;
-       QCC_main(nump, parms);
-
-       while(qcc_compileactive)
-               QCC_ContinueCompile();
-
-       PostCompile();
-
-       return true;
-}
-int Comp_Begin(progfuncs_t *progfuncs, int nump, char **parms)
-{
-       comp_nump = nump;
-       comp_parms = parms;
-       qccprogfuncs = progfuncs;
-       *errorfile = '\0';
-       if (setjmp(qcccompileerror))
-       {
-               PostCompile();
-               if (*errorfile)
-                       externs->useeditor(progfuncs, errorfile, errorline, nump, parms);
-               return false;
-       }
-
-       if (!PreCompile())
-               return false;
-       QCC_main(nump, parms);
-
-       return true;
-}
-int Comp_Continue(progfuncs_t *progfuncs)
-{      
-       qccprogfuncs = progfuncs;
-       if (setjmp(qcccompileerror))
-       {
-               PostCompile();
-               if (*errorfile && externs->useeditor)
-                       externs->useeditor(progfuncs, errorfile, errorline, comp_nump, comp_parms);
-               return false;
-       }
-
-       if (qcc_compileactive)
-               QCC_ContinueCompile();
-       else
-       {
-               PostCompile();
-
-               if (*errorfile && externs->useeditor)
-                       externs->useeditor(progfuncs, errorfile, errorline, comp_nump, comp_parms);
-
-               return false;
-       }
-
-       return true;
-}
-#endif
-pbool CompileFile(progfuncs_t *progfuncs, char *filename)
-{      
-#ifdef MINIMAL
-       return false;
-#else
-       char srcfile[32];
-       char newname[32];
-       static char *p[5];
-       int parms;
-       char *s, *s2;
-       
-       p[0] = NULL;
-       parms = 1;
-       
-       strcpy(newname, filename);
-       s = newname;
-       if (strchr(s+1, '/'))
-       {
-               while(1)
-               {
-                       s2 = strchr(s+1, '/');
-                       if (!s2)
-                       {
-                               *s = '\0';
-                               break;
-                       }
-                       s = s2;
-               }
-               p[parms] = "-src";
-               p[parms+1] = newname;
-               parms+=2;       
-               
-               strcpy(srcfile, s+1);
-               srcfile[strlen(srcfile)-4] = '\0';
-               strcat(srcfile, ".src");
-
-               if (externs->FileSize(qcva("%s/%s", newname, srcfile))>0)
-               {
-                       p[parms] = "-srcfile";
-                       p[parms+1] = srcfile;
-                       parms+=2;
-               }
-       }
-       else
-       {
-               p[parms] = "-srcfile";
-               p[parms+1] = newname;
-               newname[strlen(newname)-4] = '\0';
-               strcat(newname, ".src");
-               parms+=2;
-       }
-//     p[2][strlen(p[2])-4] = '\0';
-//     strcat(p[2], "/");
-
-       while (!CompileParams(progfuncs, true, parms, p))
-       {
-               return false;
-       }
-       return true;
-#endif
-}
-
-int QC_strncasecmp(const char *s1, const char *s2, int n)
-{
-       int             c1, c2;
-       
-       while (1)
-       {
-               c1 = *s1++;
-               c2 = *s2++;
-
-               if (!n--)
-                       return 0;               // strings are equal until end point
-               
-               if (c1 != c2)
-               {
-                       if (c1 >= 'a' && c1 <= 'z')
-                               c1 -= ('a' - 'A');
-                       if (c2 >= 'a' && c2 <= 'z')
-                               c2 -= ('a' - 'A');
-                       if (c1 != c2)
-                               return -1;              // strings not equal
-               }
-               if (!c1)
-                       return 0;               // strings are equal
-       }
-       
-       return -1;
-}
-
-void editbadfile(char *fname, int line)
-{
-       strcpy(errorfile, fname);
-       errorline = line;
-}
-
diff --git a/misc/source/fteqcc-src/dotnet2008/qcc.sln b/misc/source/fteqcc-src/dotnet2008/qcc.sln
deleted file mode 100644 (file)
index a50d9b3..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-\r
-Microsoft Visual Studio Solution File, Format Version 10.00\r
-# Visual Studio 2008\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qcc", "qcc.vcproj", "{B9F10DBD-C3E7-4312-B357-0FEFB360979A}"\r
-EndProject\r
-Global\r
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
-               Debug|Win32 = Debug|Win32\r
-               GUIDebug|Win32 = GUIDebug|Win32\r
-               GUIRelease|Win32 = GUIRelease|Win32\r
-               Release|Win32 = Release|Win32\r
-       EndGlobalSection\r
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.Debug|Win32.Build.0 = Debug|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.GUIDebug|Win32.ActiveCfg = GUIDebug|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.GUIDebug|Win32.Build.0 = GUIDebug|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.GUIRelease|Win32.ActiveCfg = GUIRelease|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.GUIRelease|Win32.Build.0 = GUIRelease|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.Release|Win32.ActiveCfg = Release|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.Release|Win32.Build.0 = Release|Win32\r
-       EndGlobalSection\r
-       GlobalSection(SolutionProperties) = preSolution\r
-               HideSolutionNode = FALSE\r
-       EndGlobalSection\r
-EndGlobal\r
diff --git a/misc/source/fteqcc-src/dotnet2008/qcc.vcproj b/misc/source/fteqcc-src/dotnet2008/qcc.vcproj
deleted file mode 100644 (file)
index 040d9ea..0000000
+++ /dev/null
@@ -1,814 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9.00"\r
-       Name="qcc"\r
-       ProjectGUID="{B9F10DBD-C3E7-4312-B357-0FEFB360979A}"\r
-       TargetFrameworkVersion="0"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory=".\Debug"\r
-                       IntermediateDirectory=".\Debug"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
-                       UseOfMFC="0"\r
-                       ATLMinimizesCRunTimeLibraryUsage="false"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                               TypeLibraryName=".\Debug/qcc.tlb"\r
-                               HeaderFileName=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="1"\r
-                               PrecompiledHeaderFile=".\Debug/qcc.pch"\r
-                               AssemblerListingLocation=".\Debug/"\r
-                               ObjectFile=".\Debug/"\r
-                               ProgramDataBaseFileName=".\Debug/"\r
-                               BrowseInformation="1"\r
-                               WarningLevel="3"\r
-                               SuppressStartupBanner="true"\r
-                               DebugInformationFormat="4"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               Culture="2057"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies="../../libs/zlib.lib odbc32.lib odbccp32.lib"\r
-                               OutputFile="../../fteqcc_dbg.exe"\r
-                               LinkIncremental="2"\r
-                               SuppressStartupBanner="true"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile=".\Debug/fteqcc_dbg.pdb"\r
-                               SubSystem="1"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                               SuppressStartupBanner="true"\r
-                               OutputFile=".\Debug/qcc.bsc"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="GUIDebug|Win32"\r
-                       OutputDirectory=".\qcc___Win32_GUIDebug"\r
-                       IntermediateDirectory=".\qcc___Win32_GUIDebug"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
-                       UseOfMFC="0"\r
-                       ATLMinimizesCRunTimeLibraryUsage="false"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                               TypeLibraryName=".\qcc___Win32_GUIDebug/qcc.tlb"\r
-                               HeaderFileName=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="1"\r
-                               PrecompiledHeaderFile=".\qcc___Win32_GUIDebug/qcc.pch"\r
-                               AssemblerListingLocation=".\qcc___Win32_GUIDebug/"\r
-                               ObjectFile=".\qcc___Win32_GUIDebug/"\r
-                               ProgramDataBaseFileName=".\qcc___Win32_GUIDebug/"\r
-                               BrowseInformation="1"\r
-                               WarningLevel="3"\r
-                               SuppressStartupBanner="true"\r
-                               DebugInformationFormat="4"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                               PreprocessorDefinitions="_DEBUG"\r
-                               Culture="2057"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies="../../libs/zlib.lib odbc32.lib odbccp32.lib comctl32.lib"\r
-                               OutputFile="..\..\fteqcc.exe"\r
-                               LinkIncremental="2"\r
-                               SuppressStartupBanner="true"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile=".\qcc___Win32_GUIDebug/fteqcc.pdb"\r
-                               SubSystem="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                               SuppressStartupBanner="true"\r
-                               OutputFile=".\qcc___Win32_GUIDebug/qcc.bsc"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="GUIRelease|Win32"\r
-                       OutputDirectory=".\qcc___Win32_GUIRelease0"\r
-                       IntermediateDirectory=".\qcc___Win32_GUIRelease0"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
-                       UseOfMFC="0"\r
-                       ATLMinimizesCRunTimeLibraryUsage="false"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                               TypeLibraryName=".\qcc___Win32_GUIRelease0/qcc.tlb"\r
-                               HeaderFileName=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="2"\r
-                               InlineFunctionExpansion="1"\r
-                               StringPooling="true"\r
-                               RuntimeLibrary="0"\r
-                               EnableFunctionLevelLinking="true"\r
-                               PrecompiledHeaderFile=".\qcc___Win32_GUIRelease0/qcc.pch"\r
-                               AssemblerListingLocation=".\qcc___Win32_GUIRelease0/"\r
-                               ObjectFile=".\qcc___Win32_GUIRelease0/"\r
-                               ProgramDataBaseFileName=".\qcc___Win32_GUIRelease0/"\r
-                               BrowseInformation="1"\r
-                               WarningLevel="3"\r
-                               SuppressStartupBanner="true"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                               PreprocessorDefinitions="NDEBUG"\r
-                               Culture="2057"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies="../../libs/zlib.lib odbc32.lib odbccp32.lib comctl32.lib"\r
-                               OutputFile="../../fteqccgui.exe"\r
-                               LinkIncremental="1"\r
-                               SuppressStartupBanner="true"\r
-                               ProgramDatabaseFile=".\qcc___Win32_GUIRelease0/fteqccgui.pdb"\r
-                               SubSystem="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                               SuppressStartupBanner="true"\r
-                               OutputFile=".\qcc___Win32_GUIRelease0/qcc.bsc"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory=".\Release"\r
-                       IntermediateDirectory=".\Release"\r
-                       ConfigurationType="1"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
-                       UseOfMFC="0"\r
-                       ATLMinimizesCRunTimeLibraryUsage="false"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                               TypeLibraryName=".\Release/qcc.tlb"\r
-                               HeaderFileName=""\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="2"\r
-                               InlineFunctionExpansion="1"\r
-                               StringPooling="true"\r
-                               RuntimeLibrary="0"\r
-                               EnableFunctionLevelLinking="true"\r
-                               PrecompiledHeaderFile=".\Release/qcc.pch"\r
-                               AssemblerListingLocation=".\Release/"\r
-                               ObjectFile=".\Release/"\r
-                               ProgramDataBaseFileName=".\Release/"\r
-                               WarningLevel="3"\r
-                               SuppressStartupBanner="true"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                               PreprocessorDefinitions="NDEBUG"\r
-                               Culture="2057"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               AdditionalDependencies="../../libs/zlib.lib odbc32.lib odbccp32.lib"\r
-                               OutputFile="../../fteqcc.exe"\r
-                               LinkIncremental="1"\r
-                               SuppressStartupBanner="true"\r
-                               ProgramDatabaseFile=".\Release/fteqcc.pdb"\r
-                               SubSystem="1"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                               SuppressStartupBanner="true"\r
-                               OutputFile=".\Release/qcc.bsc"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Source Files"\r
-                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\Comprout.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\hash.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\qcc_cmdlib.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\qcc_gtk.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\qcc_pr_comp.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\qcc_pr_lex.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\qccgui.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\qccguistuff.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\QccMain.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\qcctui.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       ExcludedFromBuild="true"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\qcd_main.c"\r
-                               >\r
-                               <FileConfiguration\r
-                                       Name="Debug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIDebug|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="GUIRelease|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                               <FileConfiguration\r
-                                       Name="Release|Win32"\r
-                                       >\r
-                                       <Tool\r
-                                               Name="VCCLCompilerTool"\r
-                                               PreprocessorDefinitions=""\r
-                                       />\r
-                               </FileConfiguration>\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Header Files"\r
-                       Filter="h;hpp;hxx;hm;inl"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\gui.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\pr_comp.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\qcc.h"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Resource Files"\r
-                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
-                       >\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
diff --git a/misc/source/fteqcc-src/dotnet2010/qcc.sln b/misc/source/fteqcc-src/dotnet2010/qcc.sln
deleted file mode 100644 (file)
index 4d85f4a..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-\r
-Microsoft Visual Studio Solution File, Format Version 11.00\r
-# Visual Studio 2010\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qcc", "qcc.vcxproj", "{B9F10DBD-C3E7-4312-B357-0FEFB360979A}"\r
-EndProject\r
-Global\r
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
-               Debug|Win32 = Debug|Win32\r
-               GUIDebug|Win32 = GUIDebug|Win32\r
-               GUIRelease|Win32 = GUIRelease|Win32\r
-               Release|Win32 = Release|Win32\r
-       EndGlobalSection\r
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.Debug|Win32.Build.0 = Debug|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.GUIDebug|Win32.ActiveCfg = GUIDebug|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.GUIDebug|Win32.Build.0 = GUIDebug|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.GUIRelease|Win32.ActiveCfg = GUIRelease|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.GUIRelease|Win32.Build.0 = GUIRelease|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.Release|Win32.ActiveCfg = Release|Win32\r
-               {B9F10DBD-C3E7-4312-B357-0FEFB360979A}.Release|Win32.Build.0 = Release|Win32\r
-       EndGlobalSection\r
-       GlobalSection(SolutionProperties) = preSolution\r
-               HideSolutionNode = FALSE\r
-       EndGlobalSection\r
-EndGlobal\r
diff --git a/misc/source/fteqcc-src/dotnet2010/qcc.vcxproj b/misc/source/fteqcc-src/dotnet2010/qcc.vcxproj
deleted file mode 100644 (file)
index abcd564..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="Debug|Win32">\r
-      <Configuration>Debug</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="GUIDebug|Win32">\r
-      <Configuration>GUIDebug</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="GUIRelease|Win32">\r
-      <Configuration>GUIRelease</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Release|Win32">\r
-      <Configuration>Release</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-  </ItemGroup>\r
-  <PropertyGroup Label="Globals">\r
-    <ProjectGuid>{B9F10DBD-C3E7-4312-B357-0FEFB360979A}</ProjectGuid>\r
-  </PropertyGroup>\r
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>false</UseOfMfc>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>false</UseOfMfc>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>false</UseOfMfc>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>false</UseOfMfc>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-  </PropertyGroup>\r
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
-  <ImportGroup Label="ExtensionSettings">\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
-  </ImportGroup>\r
-  <PropertyGroup Label="UserMacros" />\r
-  <PropertyGroup>\r
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">.\qcc___Win32_GUIDebug\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">.\qcc___Win32_GUIDebug\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">true</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">.\qcc___Win32_GUIRelease0\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">.\qcc___Win32_GUIRelease0\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'" />\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'" />\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
-  </PropertyGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
-    <Midl>\r
-      <TypeLibraryName>.\Debug/qcc.tlb</TypeLibraryName>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <Optimization>Disabled</Optimization>\r
-      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MinimalRebuild>true</MinimalRebuild>\r
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
-      <PrecompiledHeaderOutputFile>.\Debug/qcc.pch</PrecompiledHeaderOutputFile>\r
-      <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>\r
-      <ObjectFileName>.\Debug/</ObjectFileName>\r
-      <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>\r
-      <BrowseInformation>true</BrowseInformation>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0809</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalDependencies>../../libs/zlib.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>../../fteqcc_dbg.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <ProgramDatabaseFile>.\Debug/fteqcc_dbg.pdb</ProgramDatabaseFile>\r
-      <SubSystem>Console</SubSystem>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-    </Link>\r
-    <Bscmake>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <OutputFile>.\Debug/qcc.bsc</OutputFile>\r
-    </Bscmake>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">\r
-    <Midl>\r
-      <TypeLibraryName>.\qcc___Win32_GUIDebug/qcc.tlb</TypeLibraryName>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <Optimization>Disabled</Optimization>\r
-      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MinimalRebuild>true</MinimalRebuild>\r
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
-      <PrecompiledHeaderOutputFile>.\qcc___Win32_GUIDebug/qcc.pch</PrecompiledHeaderOutputFile>\r
-      <AssemblerListingLocation>.\qcc___Win32_GUIDebug/</AssemblerListingLocation>\r
-      <ObjectFileName>.\qcc___Win32_GUIDebug/</ObjectFileName>\r
-      <ProgramDataBaseFileName>.\qcc___Win32_GUIDebug/</ProgramDataBaseFileName>\r
-      <BrowseInformation>true</BrowseInformation>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0809</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalDependencies>../../libs/zlib.lib;odbc32.lib;odbccp32.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>..\..\fteqcc.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <ProgramDatabaseFile>.\qcc___Win32_GUIDebug/fteqcc.pdb</ProgramDatabaseFile>\r
-      <SubSystem>Windows</SubSystem>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-    </Link>\r
-    <Bscmake>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <OutputFile>.\qcc___Win32_GUIDebug/qcc.bsc</OutputFile>\r
-    </Bscmake>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">\r
-    <Midl>\r
-      <TypeLibraryName>.\qcc___Win32_GUIRelease0/qcc.tlb</TypeLibraryName>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <Optimization>MaxSpeed</Optimization>\r
-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
-      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <StringPooling>true</StringPooling>\r
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
-      <PrecompiledHeaderOutputFile>.\qcc___Win32_GUIRelease0/qcc.pch</PrecompiledHeaderOutputFile>\r
-      <AssemblerListingLocation>.\qcc___Win32_GUIRelease0/</AssemblerListingLocation>\r
-      <ObjectFileName>.\qcc___Win32_GUIRelease0/</ObjectFileName>\r
-      <ProgramDataBaseFileName>.\qcc___Win32_GUIRelease0/</ProgramDataBaseFileName>\r
-      <BrowseInformation>true</BrowseInformation>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0809</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalDependencies>../../libs/zlib.lib;odbc32.lib;odbccp32.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>../../fteqccgui.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <ProgramDatabaseFile>.\qcc___Win32_GUIRelease0/fteqccgui.pdb</ProgramDatabaseFile>\r
-      <SubSystem>Windows</SubSystem>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-    </Link>\r
-    <Bscmake>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <OutputFile>.\qcc___Win32_GUIRelease0/qcc.bsc</OutputFile>\r
-    </Bscmake>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
-    <Midl>\r
-      <TypeLibraryName>.\Release/qcc.tlb</TypeLibraryName>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <Optimization>MaxSpeed</Optimization>\r
-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
-      <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <StringPooling>true</StringPooling>\r
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
-      <PrecompiledHeaderOutputFile>.\Release/qcc.pch</PrecompiledHeaderOutputFile>\r
-      <AssemblerListingLocation>.\Release/</AssemblerListingLocation>\r
-      <ObjectFileName>.\Release/</ObjectFileName>\r
-      <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0809</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalDependencies>../../libs/zlib.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>../../fteqcc.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <ProgramDatabaseFile>.\Release/fteqcc.pdb</ProgramDatabaseFile>\r
-      <SubSystem>Console</SubSystem>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-    </Link>\r
-    <Bscmake>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <OutputFile>.\Release/qcc.bsc</OutputFile>\r
-    </Bscmake>\r
-  </ItemDefinitionGroup>\r
-  <ItemGroup>\r
-    <ClCompile Include="..\Comprout.c">\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\hash.c">\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\qcc_cmdlib.c">\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\qcc_gtk.c">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\qcc_pr_comp.c">\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\qcc_pr_lex.c">\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\qccgui.c">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\qccguistuff.c">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\QccMain.c">\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\qcctui.c">\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">true</ExcludedFromBuild>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ClCompile Include="..\qcd_main.c">\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='GUIRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <ClInclude Include="..\gui.h" />\r
-    <ClInclude Include="..\pr_comp.h" />\r
-    <ClInclude Include="..\qcc.h" />\r
-  </ItemGroup>\r
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
-  <ImportGroup Label="ExtensionTargets">\r
-  </ImportGroup>\r
-</Project>
\ No newline at end of file
diff --git a/misc/source/fteqcc-src/execloop.h b/misc/source/fteqcc-src/execloop.h
deleted file mode 100644 (file)
index 208a79b..0000000
+++ /dev/null
@@ -1,1202 +0,0 @@
-//qc execution code.
-//we have two conditions.
-//one allows us to debug and trace through our code, the other doesn't.
-
-//hopefully, the compiler will do a great job at optimising this code for us, where required.
-//if it dosn't, then bum.
-
-//the general overhead should be reduced significantly, and I would be supprised if it did run slower.
-
-//run away loops are checked for ONLY on gotos and function calls. This might give a poorer check, but it will run faster overall.
-
-//Appears to work fine.
-
-#if INTSIZE == 16
-#define cont cont16
-#define reeval reeval16
-#define st st16
-#define pr_statements pr_statements16
-#define fakeop fakeop16
-#define dstatement_t dstatement16_t
-#define sofs signed short
-#define uofs unsigned short
-#elif INTSIZE == 32
-#define cont cont32
-#define reeval reeval32
-#define st st32
-#define pr_statements pr_statements32
-#define fakeop fakeop32
-#define dstatement_t dstatement32_t
-#define sofs signed int
-#define uofs unsigned int
-#elif INTSIZE == 24
-#error INTSIZE should be set to 32.
-#else
-#error Bad cont size
-#endif
-
-#ifdef DEBUGABLE
-#define OPCODE (st->op & ~0x8000)
-#else
-#define OPCODE (st->op)
-#endif
-
-#define ENGINEPOINTER(p) ((char*)(p) - progfuncs->stringtable)
-#define QCPOINTER(p) (eval_t *)(p->_int+progfuncs->stringtable)
-#define QCPOINTERM(p) (eval_t *)((p)+progfuncs->stringtable)
-
-//rely upon just st
-{
-#ifdef DEBUGABLE
-cont:  //last statement may have been a breakpoint             
-       s = st-pr_statements;
-       s+=1;
-       s=ShowStep(progfuncs, s);
-       st = pr_statements + s;
-
-reeval:
-#else
-       st++;
-#endif
-       switch (OPCODE)
-       {
-       case OP_ADD_F:
-               OPC->_float = OPA->_float + OPB->_float;
-               break;
-       case OP_ADD_V:
-               OPC->_vector[0] = OPA->_vector[0] + OPB->_vector[0];
-               OPC->_vector[1] = OPA->_vector[1] + OPB->_vector[1];
-               OPC->_vector[2] = OPA->_vector[2] + OPB->_vector[2];
-               break;
-
-       case OP_SUB_F:
-               OPC->_float = OPA->_float - OPB->_float;
-               break;
-       case OP_SUB_V:
-               OPC->_vector[0] = OPA->_vector[0] - OPB->_vector[0];
-               OPC->_vector[1] = OPA->_vector[1] - OPB->_vector[1];
-               OPC->_vector[2] = OPA->_vector[2] - OPB->_vector[2];
-               break;
-
-       case OP_MUL_F:
-               OPC->_float = OPA->_float * OPB->_float;
-               break;
-       case OP_MUL_V:
-               OPC->_float = OPA->_vector[0]*OPB->_vector[0]
-                               + OPA->_vector[1]*OPB->_vector[1]
-                               + OPA->_vector[2]*OPB->_vector[2];
-               break;
-       case OP_MUL_FV:
-               OPC->_vector[0] = OPA->_float * OPB->_vector[0];
-               OPC->_vector[1] = OPA->_float * OPB->_vector[1];
-               OPC->_vector[2] = OPA->_float * OPB->_vector[2];
-               break;
-       case OP_MUL_VF:
-               OPC->_vector[0] = OPB->_float * OPA->_vector[0];
-               OPC->_vector[1] = OPB->_float * OPA->_vector[1];
-               OPC->_vector[2] = OPB->_float * OPA->_vector[2];
-               break;
-
-       case OP_DIV_F:
-               OPC->_float = OPA->_float / OPB->_float;
-               break;
-       case OP_DIV_VF:
-               OPC->_vector[0] = OPB->_float / OPA->_vector[0];
-               OPC->_vector[1] = OPB->_float / OPA->_vector[1];
-               OPC->_vector[2] = OPB->_float / OPA->_vector[2];
-               break;
-
-       case OP_BITAND_F:
-               OPC->_float = (float)((int)OPA->_float & (int)OPB->_float);
-               break;
-
-       case OP_BITOR_F:
-               OPC->_float = (float)((int)OPA->_float | (int)OPB->_float);
-               break;
-
-
-       case OP_GE_F:
-               OPC->_float = (float)(OPA->_float >= OPB->_float);
-               break;
-       case OP_GE_I:
-               OPC->_int = (int)(OPA->_int >= OPB->_int);
-               break;
-       case OP_GE_IF:
-               OPC->_float = (float)(OPA->_int >= OPB->_float);
-               break;
-       case OP_GE_FI:
-               OPC->_float = (float)(OPA->_float >= OPB->_int);
-               break;
-
-       case OP_LE_F:
-               OPC->_float = (float)(OPA->_float <= OPB->_float);
-               break;
-       case OP_LE_I:
-               OPC->_int = (int)(OPA->_int <= OPB->_int);
-               break;
-       case OP_LE_IF:
-               OPC->_float = (float)(OPA->_int <= OPB->_float);
-               break;
-       case OP_LE_FI:
-               OPC->_float = (float)(OPA->_float <= OPB->_int);
-               break;
-
-       case OP_GT_F:
-               OPC->_float = (float)(OPA->_float > OPB->_float);
-               break;
-       case OP_GT_I:
-               OPC->_int = (int)(OPA->_int > OPB->_int);
-               break;
-       case OP_GT_IF:
-               OPC->_float = (float)(OPA->_int > OPB->_float);
-               break;
-       case OP_GT_FI:
-               OPC->_float = (float)(OPA->_float > OPB->_int);
-               break;
-
-       case OP_LT_F:
-               OPC->_float = (float)(OPA->_float < OPB->_float);
-               break;
-       case OP_LT_I:
-               OPC->_int = (int)(OPA->_int < OPB->_int);
-               break;
-       case OP_LT_IF:
-               OPC->_float = (float)(OPA->_int < OPB->_float);
-               break;
-       case OP_LT_FI:
-               OPC->_float = (float)(OPA->_float < OPB->_int);
-               break;
-
-       case OP_AND_F:
-               OPC->_float = (float)(OPA->_float && OPB->_float);
-               break;
-       case OP_OR_F:
-               OPC->_float = (float)(OPA->_float || OPB->_float);
-               break;
-
-       case OP_NOT_F:
-               OPC->_float = (float)(!OPA->_float);
-               break;
-       case OP_NOT_V:
-               OPC->_float = (float)(!OPA->_vector[0] && !OPA->_vector[1] && !OPA->_vector[2]);
-               break;
-       case OP_NOT_S:
-               OPC->_float = (float)(!(OPA->string) || !*PR_StringToNative(progfuncs, OPA->string));
-               break;
-       case OP_NOT_FNC:
-               OPC->_float = (float)(!(OPA->function & ~0xff000000));
-               break;
-       case OP_NOT_ENT:
-               OPC->_float = (float)(PROG_TO_EDICT(progfuncs, OPA->edict) == (edictrun_t *)sv_edicts);
-               break;
-
-       case OP_EQ_F:
-               OPC->_float = (float)(OPA->_float == OPB->_float);
-               break;
-       case OP_EQ_IF:
-               OPC->_float = (float)(OPA->_int == OPB->_float);
-               break;
-       case OP_EQ_FI:
-               OPC->_float = (float)(OPA->_float == OPB->_int);
-               break;
-
-
-       case OP_EQ_V:
-               OPC->_float = (float)((OPA->_vector[0] == OPB->_vector[0]) &&
-                                       (OPA->_vector[1] == OPB->_vector[1]) &&
-                                       (OPA->_vector[2] == OPB->_vector[2]));
-               break;
-       case OP_EQ_S:
-               if (OPA->string==OPB->string)
-                       OPC->_float = true;
-               else if (!OPA->string)
-               {
-                       if (!OPB->string || !*PR_StringToNative(progfuncs, OPB->string))
-                               OPC->_float = true;
-                       else
-                               OPC->_float = false;
-               }
-               else if (!OPB->string)
-               {
-                       if (!OPA->string || !*PR_StringToNative(progfuncs, OPA->string))
-                               OPC->_float = true;
-                       else
-                               OPC->_float = false;
-               }
-               else
-                       OPC->_float = (float)(!strcmp(PR_StringToNative(progfuncs, OPA->string),PR_StringToNative(progfuncs, OPB->string)));
-               break;
-       case OP_EQ_E:
-               OPC->_float = (float)(OPA->_int == OPB->_int);
-               break;
-       case OP_EQ_FNC:
-               OPC->_float = (float)(OPA->function == OPB->function);
-               break;
-
-
-       case OP_NE_F:
-               OPC->_float = (float)(OPA->_float != OPB->_float);
-               break;
-       case OP_NE_V:
-               OPC->_float = (float)((OPA->_vector[0] != OPB->_vector[0]) ||
-                                       (OPA->_vector[1] != OPB->_vector[1]) ||
-                                       (OPA->_vector[2] != OPB->_vector[2]));
-               break;
-       case OP_NE_S:
-               if (OPA->string==OPB->string)
-                       OPC->_float = false;
-               else if (!OPA->string)
-               {
-                       if (!OPB->string || !*(PR_StringToNative(progfuncs, OPB->string)))
-                               OPC->_float = false;
-                       else
-                               OPC->_float = true;
-               }
-               else if (!OPB->string)
-               {
-                       if (!OPA->string || !*PR_StringToNative(progfuncs, OPA->string))
-                               OPC->_float = false;
-                       else
-                               OPC->_float = true;
-               }
-               else
-                       OPC->_float = (float)(strcmp(PR_StringToNative(progfuncs, OPA->string),PR_StringToNative(progfuncs, OPB->string)));             
-               break;
-       case OP_NE_E:
-               OPC->_float = (float)(OPA->_int != OPB->_int);
-               break;
-       case OP_NE_FNC:
-               OPC->_float = (float)(OPA->function != OPB->function);
-               break;
-
-//==================
-       case OP_STORE_IF:
-               OPB->_float = (float)OPA->_int;
-               break;
-       case OP_STORE_FI:
-               OPB->_int = (int)OPA->_float;
-               break;
-               
-       case OP_STORE_F:
-       case OP_STORE_ENT:
-       case OP_STORE_FLD:              // integers
-       case OP_STORE_S:
-       case OP_STORE_I:
-       case OP_STORE_FNC:              // pointers
-       case OP_STORE_P:
-               OPB->_int = OPA->_int;
-               break;
-       case OP_STORE_V:
-               OPB->_vector[0] = OPA->_vector[0];
-               OPB->_vector[1] = OPA->_vector[1];
-               OPB->_vector[2] = OPA->_vector[2];
-               break;
-
-       //store a value to a pointer
-       case OP_STOREP_IF:
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               ptr->_float = (float)OPA->_int;
-               break;
-       case OP_STOREP_FI:
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               ptr->_int = (int)OPA->_float;
-               break;
-       case OP_STOREP_I:
-       case OP_GSTOREP_I:
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               ptr->_int = OPA->_int;
-               break;
-       case OP_STOREP_F:
-       case OP_GSTOREP_F:
-       case OP_STOREP_ENT:
-       case OP_GSTOREP_ENT:
-       case OP_STOREP_FLD:             // integers
-       case OP_GSTOREP_FLD:
-       case OP_STOREP_S:
-       case OP_GSTOREP_S:
-       case OP_STOREP_FNC:             // pointers
-       case OP_GSTOREP_FNC:
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s (%x >= %x)", PR_StringToNative(progfuncs, pr_xfunction->s_name), OPB->_int, prinst->addressableused);
-               }
-               ptr = QCPOINTER(OPB);
-               ptr->_int = OPA->_int;
-               break;
-       case OP_STOREP_V:
-       case OP_GSTOREP_V:
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               ptr->_vector[0] = OPA->_vector[0];
-               ptr->_vector[1] = OPA->_vector[1];
-               ptr->_vector[2] = OPA->_vector[2];
-               break;
-
-       case OP_STOREP_C:       //store character in a string
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               *(unsigned char *)ptr = (char)OPA->_float;
-               break;
-
-       case OP_MULSTORE_F: // f *= f
-               OPB->_float *= OPA->_float;
-               break;
-       case OP_MULSTORE_VF: // v *= f
-               OPB->_vector[0] *= OPA->_float;
-               OPB->_vector[1] *= OPA->_float;
-               OPB->_vector[2] *= OPA->_float;
-               break;
-       case OP_MULSTOREP_F: // e.f *= f
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               OPC->_float = (ptr->_float *= OPA->_float);
-               break;
-       case OP_MULSTOREP_VF: // e.v *= f
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               OPC->_vector[0] = (ptr->_vector[0] *= OPA->_float);
-               OPC->_vector[0] = (ptr->_vector[1] *= OPA->_float);
-               OPC->_vector[0] = (ptr->_vector[2] *= OPA->_float);
-               break;
-
-       case OP_DIVSTORE_F: // f /= f
-               OPB->_float /= OPA->_float;
-               break;
-       case OP_DIVSTOREP_F: // e.f /= f
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               OPC->_float = (ptr->_float /= OPA->_float);
-               break;
-
-       case OP_ADDSTORE_F: // f += f
-               OPB->_float += OPA->_float;
-               break;
-       case OP_ADDSTORE_V: // v += v
-               OPB->_vector[0] += OPA->_vector[0];
-               OPB->_vector[1] += OPA->_vector[1];
-               OPB->_vector[2] += OPA->_vector[2];
-               break;
-       case OP_ADDSTOREP_F: // e.f += f
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               OPC->_float = (ptr->_float += OPA->_float);
-               break;
-       case OP_ADDSTOREP_V: // e.v += v
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               OPC->_vector[0] = (ptr->_vector[0] += OPA->_vector[0]);
-               OPC->_vector[1] = (ptr->_vector[1] += OPA->_vector[1]);
-               OPC->_vector[2] = (ptr->_vector[2] += OPA->_vector[2]);
-               break;
-
-       case OP_SUBSTORE_F: // f -= f
-               OPB->_float -= OPA->_float;
-               break;
-       case OP_SUBSTORE_V: // v -= v
-               OPB->_vector[0] -= OPA->_vector[0];
-               OPB->_vector[1] -= OPA->_vector[1];
-               OPB->_vector[2] -= OPA->_vector[2];
-               break;
-       case OP_SUBSTOREP_F: // e.f -= f
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               OPC->_float = (ptr->_float -= OPA->_float);
-               break;
-       case OP_SUBSTOREP_V: // e.v -= v
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               OPC->_vector[0] = (ptr->_vector[0] -= OPA->_vector[0]);
-               OPC->_vector[1] = (ptr->_vector[1] -= OPA->_vector[1]);
-               OPC->_vector[2] = (ptr->_vector[2] -= OPA->_vector[2]);
-               break;
-
-
-       //get a pointer to a field var
-       case OP_ADDRESS:
-               if ((unsigned)OPA->edict >= (unsigned)maxedicts)
-               {
-#ifndef DEBUGABLE
-                       pr_trace++;
-                       printf("OP_ADDRESS references invalid entity in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-                       st--;
-                       goto cont;
-#else
-                       PR_RunError (progfuncs, "OP_ADDRESS references invalid entity in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-#endif
-               }
-               ed = PROG_TO_EDICT(progfuncs, OPA->edict);
-#ifdef PARANOID
-               NUM_FOR_EDICT(ed);              // make sure it's in range
-#endif
-               if (!ed || ed->readonly)
-               {
-                       pr_xstatement = st-pr_statements;
-#ifndef DEBUGABLE
-                       //boot it over to the debugger
-                       pr_trace++;
-                       printf("assignment to read-only entity in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-                       st--;
-                       goto cont;
-#else
-                       {
-                               ddef16_t *d16;
-                               fdef_t *f;
-                               d16 = ED_GlobalAtOfs16(progfuncs, st->a);
-                               f = ED_FieldAtOfs(progfuncs, OPB->_int + progfuncs->fieldadjust);
-                               printf ("assignment to read-only entity in %s (%s.%s)\n", PR_StringToNative(progfuncs, pr_xfunction->s_name), d16?PR_StringToNative(progfuncs, d16->s_name):NULL, f?f->name:NULL);
-                       }
-#endif
-               }
-
-//Whilst the next block would technically be correct, we don't use it as it breaks too many quake mods.
-//             if (ed->isfree)
-//             {
-//                     pr_xstatement = st-pr_statements;
-//                     PR_RunError (progfuncs, "assignment to free entitiy in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-//             }
-               OPC->_int = ENGINEPOINTER((((int *)edvars(ed)) + OPB->_int + progfuncs->fieldadjust));
-               break;
-
-       //load a field to a value
-       case OP_LOAD_I:
-       case OP_LOAD_F:
-       case OP_LOAD_FLD:
-       case OP_LOAD_ENT:
-       case OP_LOAD_S:
-       case OP_LOAD_FNC:
-               if ((unsigned)OPA->edict >= (unsigned)maxedicts)
-                       PR_RunError (progfuncs, "OP_LOAD references invalid entity in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               ed = PROG_TO_EDICT(progfuncs, OPA->edict);
-#ifdef PARANOID
-               NUM_FOR_EDICT(ed);              // make sure it's in range
-#endif
-               ptr = (eval_t *)(((int *)edvars(ed)) + OPB->_int + progfuncs->fieldadjust);
-               OPC->_int = ptr->_int;
-               break;
-
-       case OP_LOAD_V:
-               if ((unsigned)OPA->edict >= (unsigned)maxedicts)
-                       PR_RunError (progfuncs, "OP_LOAD_V references invalid entity in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               ed = PROG_TO_EDICT(progfuncs, OPA->edict);
-#ifdef PARANOID
-               NUM_FOR_EDICT(ed);              // make sure it's in range
-#endif
-               ptr = (eval_t *)(((int *)edvars(ed)) + OPB->_int + progfuncs->fieldadjust);
-               OPC->_vector[0] = ptr->_vector[0];
-               OPC->_vector[1] = ptr->_vector[1];
-               OPC->_vector[2] = ptr->_vector[2];
-               break;  
-               
-//==================
-
-       case OP_IFNOT_S:
-               RUNAWAYCHECK();
-               if (!OPA->string || !PR_StringToNative(progfuncs, OPA->string))
-                       st += (sofs)st->b - 1;  // offset the s++
-               break;
-
-       case OP_IFNOT_F:
-               RUNAWAYCHECK();
-               if (!OPA->_float)
-                       st += (sofs)st->b - 1;  // offset the s++
-               break;
-
-       case OP_IFNOT_I:
-               RUNAWAYCHECK();
-               if (!OPA->_int)
-                       st += (sofs)st->b - 1;  // offset the s++
-               break;
-
-       case OP_IF_S:
-               RUNAWAYCHECK();
-               if (OPA->string && PR_StringToNative(progfuncs, OPA->string))
-                       st += (sofs)st->b - 1;  // offset the s++
-               break;
-
-       case OP_IF_F:
-               RUNAWAYCHECK();
-               if (OPA->_int)
-                       st += (sofs)st->b - 1;  // offset the s++
-               break;
-
-       case OP_IF_I:
-               RUNAWAYCHECK();
-               if (OPA->_int)
-                       st += (sofs)st->b - 1;  // offset the s++
-               break;
-               
-       case OP_GOTO:
-               RUNAWAYCHECK();
-               st += (sofs)st->a - 1;  // offset the s++
-               break;
-
-       case OP_CALL8H:
-       case OP_CALL7H:
-       case OP_CALL6H:
-       case OP_CALL5H:
-       case OP_CALL4H:
-       case OP_CALL3H:
-       case OP_CALL2H:
-               G_VECTOR(OFS_PARM1)[0] = OPC->_vector[0];
-               G_VECTOR(OFS_PARM1)[1] = OPC->_vector[1];
-               G_VECTOR(OFS_PARM1)[2] = OPC->_vector[2];
-       case OP_CALL1H:
-               G_VECTOR(OFS_PARM0)[0] = OPB->_vector[0];
-               G_VECTOR(OFS_PARM0)[1] = OPB->_vector[1];
-               G_VECTOR(OFS_PARM0)[2] = OPB->_vector[2];
-
-       case OP_CALL8:
-       case OP_CALL7:
-       case OP_CALL6:
-       case OP_CALL5:
-       case OP_CALL4:
-       case OP_CALL3:
-       case OP_CALL2:
-       case OP_CALL1:
-       case OP_CALL0:
-               RUNAWAYCHECK();
-               pr_xstatement = st-pr_statements;
-
-               if (OPCODE > OP_CALL8)
-                       pr_argc = OPCODE - (OP_CALL1H-1);
-               else
-                       pr_argc = OPCODE - OP_CALL0;
-               fnum = OPA->function;
-               if ((fnum & ~0xff000000)==0)
-               {
-                       PR_RunError(progfuncs, "NULL function from qc (%s).\n", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-#ifndef DEBUGABLE
-                       goto cont;
-#endif
-                       break;
-               }
-/*
-{
-       static char buffer[1024*1024*8];
-       int size = sizeof buffer;
-               progfuncs->save_ents(progfuncs, buffer, &size, 0);
-}*/
-
-               {
-               int callerprogs=pr_typecurrent;
-//about to switch. needs caching.
-
-               //if it's an external call, switch now (before any function pointers are used)
-               PR_MoveParms(progfuncs, (fnum & 0xff000000)>>24, callerprogs);
-               PR_SwitchProgs(progfuncs, (fnum & 0xff000000)>>24);
-
-               newf = &pr_functions[fnum & ~0xff000000];
-
-               if (newf->first_statement < 0)
-               {       // negative statements are built in functions
-                       /*calling a builtin in another progs may affect that other progs' globals instead, is the theory anyway, so args and stuff need to move over*/
-                       if (pr_typecurrent != 0)
-                       {
-                               PR_MoveParms(progfuncs, 0, pr_typecurrent);
-                               PR_SwitchProgs(progfuncs, 0);
-                       }
-                       i = -newf->first_statement;
-//                     p = pr_typecurrent;
-                       progfuncs->lastcalledbuiltinnumber = i;
-                       if (i < externs->numglobalbuiltins)
-                       {
-                               prinst->numtempstringsstack = prinst->numtempstrings;
-                               (*externs->globalbuiltins[i]) (progfuncs, (struct globalvars_s *)current_progstate->globals);
-                               if (prinst->continuestatement!=-1)
-                               {
-                                       st=&pr_statements[prinst->continuestatement];
-                                       prinst->continuestatement=-1;
-                                       break;
-                               }
-                       }
-                       else
-                       {
-                               i -= externs->numglobalbuiltins;
-                               if (i >= current_progstate->numbuiltins)
-                               {
-//                                     if (newf->first_statement == -0x7fffffff)
-//                                             ((builtin_t)newf->profile) (progfuncs, (struct globalvars_s *)current_progstate->globals);
-//                                     else
-                                               PR_RunError (progfuncs, "Bad builtin call number - %i", -newf->first_statement);
-                               }
-                               else
-                                       current_progstate->builtins [i] (progfuncs, (struct globalvars_s *)current_progstate->globals);
-                       }
-                       PR_MoveParms(progfuncs, callerprogs, pr_typecurrent);
-//                     memcpy(&pr_progstate[p].globals[OFS_RETURN], &current_progstate->globals[OFS_RETURN], sizeof(vec3_t));
-                       PR_SwitchProgs(progfuncs, (progsnum_t)callerprogs);
-
-//#ifndef DEBUGABLE    //decide weather non debugger wants to start debugging.
-                       s = st-pr_statements;
-                       goto restart;
-//#endif
-//                     break;
-               }
-//             PR_MoveParms((OPA->function & 0xff000000)>>24, pr_typecurrent);
-//             PR_SwitchProgs((OPA->function & 0xff000000)>>24);
-               s = PR_EnterFunction (progfuncs, newf, callerprogs);
-               st = &pr_statements[s];
-               }
-               
-               goto restart;
-//             break;
-
-       case OP_DONE:
-       case OP_RETURN:
-
-               RUNAWAYCHECK();
-
-               pr_globals[OFS_RETURN] = pr_globals[st->a];
-               pr_globals[OFS_RETURN+1] = pr_globals[st->a+1];
-               pr_globals[OFS_RETURN+2] = pr_globals[st->a+2];
-/*
-{
-       static char buffer[1024*1024*8];
-       int size = sizeof buffer;
-               progfuncs->save_ents(progfuncs, buffer, &size, 0);
-}
-*/
-               s = PR_LeaveFunction (progfuncs);
-               st = &pr_statements[s];         
-               if (pr_depth == prinst->exitdepth)
-               {               
-                       return;         // all done
-               }
-               goto restart;
-//             break;
-
-       case OP_STATE:
-               externs->stateop(progfuncs, OPA->_float, OPB->function);
-               break;
-
-       case OP_ADD_I:          
-               OPC->_int = OPA->_int + OPB->_int;
-               break;
-       case OP_ADD_FI:
-               OPC->_float = OPA->_float + (float)OPB->_int;
-               break;
-       case OP_ADD_IF:
-               OPC->_float = (float)OPA->_int + OPB->_float;
-               break;
-  
-       case OP_SUB_I:
-               OPC->_int = OPA->_int - OPB->_int;
-               break;
-       case OP_SUB_FI:
-               OPC->_float = OPA->_float - (float)OPB->_int;
-               break;
-       case OP_SUB_IF:
-               OPC->_float = (float)OPA->_int - OPB->_float;
-               break;
-
-       case OP_CONV_ITOF:
-               OPC->_float = (float)OPA->_int;
-               break;
-       case OP_CONV_FTOI:
-               OPC->_int = (int)OPA->_float;
-               break;
-
-       case OP_CP_ITOF:
-               ptr = (eval_t *)(((qbyte *)sv_edicts) + OPA->_int);
-               OPC->_float = (float)ptr->_int;
-               break;
-
-       case OP_CP_FTOI:
-               ptr = (eval_t *)(((qbyte *)sv_edicts) + OPA->_int);
-               OPC->_int = (int)ptr->_float;
-               break;
-
-       case OP_BITAND_I:
-               OPC->_int = (OPA->_int & OPB->_int);
-               break;
-       
-       case OP_BITOR_I:
-               OPC->_int = (OPA->_int | OPB->_int);
-               break;
-
-       case OP_MUL_I:          
-               OPC->_int = OPA->_int * OPB->_int;
-               break;
-       case OP_DIV_I:
-               if (OPB->_int == 0)     //no division by zero allowed...
-                       OPC->_int = 0;
-               else
-                       OPC->_int = OPA->_int / OPB->_int;
-               break;
-       case OP_EQ_I:
-               OPC->_int = (OPA->_int == OPB->_int);
-               break;
-       case OP_NE_I:
-               OPC->_int = (OPA->_int != OPB->_int);
-               break;
-       
-
-       //array/structure reading/writing.
-       case OP_GLOBALADDRESS:
-               OPC->_int = ENGINEPOINTER(&OPA->_int + OPB->_int); /*pointer arithmatic*/
-               break;
-       case OP_POINTER_ADD:    //pointer to 32 bit (remember to *3 for vectors)
-               OPC->_int = OPA->_int + OPB->_int*4;
-               break;
-
-       case OP_LOADA_I:
-       case OP_LOADA_F:
-       case OP_LOADA_FLD:
-       case OP_LOADA_ENT:
-       case OP_LOADA_S:
-       case OP_LOADA_FNC:
-               ptr = (eval_t *)(&OPA->_int + OPB->_int); /*pointer arithmatic*/
-               OPC->_int = ptr->_int;
-               break;
-
-       case OP_LOADA_V:
-               ptr = (eval_t *)(&OPA->_int + OPB->_int);
-               OPC->_vector[0] = ptr->_vector[0];
-               OPC->_vector[1] = ptr->_vector[1];
-               OPC->_vector[2] = ptr->_vector[2];
-               break;
-
-
-
-       case OP_ADD_SF: //(char*)c = (char*)a + (float)b
-               OPC->_int = OPA->_int + (int)OPB->_float;
-               break;
-       case OP_SUB_S:  //(float)c = (char*)a - (char*)b
-               OPC->_int = OPA->_int - OPB->_int;
-               break;
-       case OP_LOADP_C:        //load character from a string
-               i = (unsigned int)OPA->_int + (unsigned int)OPB->_float;
-               if ((unsigned int)i >= prinst->addressableused)
-               {
-                       i = (unsigned int)OPB->_float;
-                       ptr = (eval_t*)PR_StringToNative(progfuncs, OPA->_int);
-                       if ((size_t)i > strlen((char*)ptr))
-                       {
-                               pr_xstatement = st-pr_statements;
-                               PR_RunError (progfuncs, "bad pointer read in %s (%i bytes into %s)", PR_StringToNative(progfuncs, pr_xfunction->s_name), i, ptr);
-                       }
-                       ptr = (eval_t*)((char*)ptr + i);
-               }
-               else 
-                       ptr = QCPOINTERM(i);
-               OPC->_float = *(unsigned char *)ptr;
-               break;
-       case OP_LOADP_I:
-       case OP_LOADP_F:
-       case OP_LOADP_FLD:
-       case OP_LOADP_ENT:
-       case OP_LOADP_S:
-       case OP_LOADP_FNC:
-               i = OPA->_int + OPB->_int*4;
-               if ((unsigned int)i >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer read in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTERM(OPA->_int + OPB->_int*4);
-               OPC->_int = ptr->_int;
-               break;
-
-       case OP_LOADP_V:
-               i = OPA->_int + OPB->_int*4;
-               if ((unsigned int)i >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer read in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTERM(i);
-               OPC->_vector[0] = ptr->_vector[0];
-               OPC->_vector[1] = ptr->_vector[1];
-               OPC->_vector[2] = ptr->_vector[2];
-               break;
-
-       case OP_XOR_I:
-               OPC->_int = OPA->_int ^ OPB->_int;
-               break;
-       case OP_RSHIFT_I:
-               OPC->_int = OPA->_int >> OPB->_int;
-               break;
-       case OP_LSHIFT_I:
-               OPC->_int = OPA->_int << OPB->_int;
-               break;
-
-
-       case OP_FETCH_GBL_F:
-       case OP_FETCH_GBL_S:
-       case OP_FETCH_GBL_E:
-       case OP_FETCH_GBL_FNC:
-               i = (int)OPB->_float;
-               if(i < 0 || i > ((eval_t *)&glob[st->a-1])->_int)
-               {
-                       PR_RunError(progfuncs, "array index out of bounds: %s[%d] (max %d)", PR_GlobalStringNoContents(progfuncs, st->a), i, ((eval_t *)&glob[st->a-1])->_int);
-               }
-               t = (eval_t *)&pr_globals[(uofs)st->a + i];
-               OPC->_int = t->_int;
-               break;
-       case OP_FETCH_GBL_V:
-               i = (int)OPB->_float;
-               if(i < 0 || i > ((eval_t *)&glob[st->a-1])->_int)
-               {
-                       PR_RunError(progfuncs, "array index out of bounds: %s[%d]", PR_GlobalStringNoContents(progfuncs, st->a), i);
-               }
-               t = (eval_t *)&pr_globals[(uofs)st->a + i*3];
-               OPC->_vector[0] = t->_vector[0];
-               OPC->_vector[1] = t->_vector[1];
-               OPC->_vector[2] = t->_vector[2];
-               break;
-
-       case OP_CSTATE:
-               externs->cstateop(progfuncs, OPA->_float, OPB->_float, fnum);
-               break;
-
-       case OP_CWSTATE:
-               externs->cwstateop(progfuncs, OPA->_float, OPB->_float, fnum);
-               break;
-
-       case OP_THINKTIME:
-               externs->thinktimeop(progfuncs, (struct edict_s *)PROG_TO_EDICT(progfuncs, OPA->edict), OPB->_float);
-               break;
-
-
-       case OP_BITSET: // b (+) a
-               OPB->_float = (float)((int)OPB->_float | (int)OPA->_float);
-               break;
-       case OP_BITSETP: // .b (+) a
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               ptr->_float = (float)((int)ptr->_float | (int)OPA->_float);
-               break;
-       case OP_BITCLR: // b (-) a
-               OPB->_float = (float)((int)OPB->_float & ~((int)OPA->_float));
-               break;
-       case OP_BITCLRP: // .b (-) a
-               if ((unsigned int)OPB->_int >= prinst->addressableused)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError (progfuncs, "bad pointer write in %s", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-               }
-               ptr = QCPOINTER(OPB);
-               ptr->_float = (float)((int)ptr->_float & ~((int)OPA->_float));
-               break;
-
-       case OP_RAND0:
-               OPC->_float = (rand()&0x7fff)/((float)0x7fff);
-               break;
-       case OP_RAND1:
-               OPC->_float = (rand()&0x7fff)/((float)0x7fff)*OPA->_float;
-               break;
-       case OP_RAND2:
-               if(OPA->_float < OPB->_float)
-               {
-                       OPC->_float = OPA->_float+((rand()&0x7fff)/((float)0x7fff)
-                               *(OPB->_float-OPA->_float));
-               }
-               else
-               {
-                       OPC->_float = OPB->_float+((rand()&0x7fff)/((float)0x7fff)
-                               *(OPA->_float-OPB->_float));
-               }
-               break;
-       case OP_RANDV0:
-               OPC->_vector[0] = (rand()&0x7fff)/((float)0x7fff);
-               OPC->_vector[1] = (rand()&0x7fff)/((float)0x7fff);
-               OPC->_vector[2] = (rand()&0x7fff)/((float)0x7fff);
-               break;
-       case OP_RANDV1:
-               OPC->_vector[0] = (rand()&0x7fff)/((float)0x7fff)*OPA->_vector[0];
-               OPC->_vector[1] = (rand()&0x7fff)/((float)0x7fff)*OPA->_vector[1];
-               OPC->_vector[2] = (rand()&0x7fff)/((float)0x7fff)*OPA->_vector[2];
-               break;
-       case OP_RANDV2:
-               for(i = 0; i < 3; i++)
-               {
-                       if(OPA->_vector[i] < OPB->_vector[i])
-                       {
-                               OPC->_vector[i] = OPA->_vector[i]+((rand()&0x7fff)/((float)0x7fff)
-                                       *(OPB->_vector[i]-OPA->_vector[i]));
-                       }
-                       else
-                       {
-                               OPC->_vector[i] = OPB->_vector[i]+(rand()*(1.0f/RAND_MAX)
-                                       *(OPA->_vector[i]-OPB->_vector[i]));
-                       }
-               }
-               break;
-
-
-       case OP_SWITCH_F:
-       case OP_SWITCH_V:
-       case OP_SWITCH_S:
-       case OP_SWITCH_E:
-       case OP_SWITCH_FNC:
-               swtch = OPA;
-               swtchtype = OPCODE;
-               RUNAWAYCHECK();
-               st += (sofs)st->b - 1;  // offset the st++
-               break;
-       case OP_CASE:
-               switch(swtchtype)
-               {
-               case OP_SWITCH_F:
-                       if (swtch->_float == OPA->_float)
-                       {
-                               RUNAWAYCHECK();
-                               st += (sofs)st->b-1; // -1 to offset the s++
-                       }
-                       break;
-               case OP_SWITCH_E:
-               case OP_SWITCH_FNC:
-                       if (swtch->_int == OPA->_int)
-                       {
-                               RUNAWAYCHECK();
-                               st += (sofs)st->b-1; // -1 to offset the s++
-                       }
-                       break;
-               case OP_SWITCH_S:
-                       if (swtch->_int == OPA->_int)
-                       {
-                               RUNAWAYCHECK();
-                               st += (sofs)st->b-1; // -1 to offset the s++
-                       }
-                       if ((!swtch->_int && PR_StringToNative(progfuncs, OPA->string)) || (!OPA->_int && PR_StringToNative(progfuncs, swtch->string))) //one is null (cannot be not both).
-                               break;
-                       if (!strcmp(PR_StringToNative(progfuncs, swtch->string), PR_StringToNative(progfuncs, OPA->string)))
-                       {
-                               RUNAWAYCHECK();
-                               st += (sofs)st->b-1; // -1 to offset the s++
-                       }
-                       break;
-               case OP_SWITCH_V:
-                       if (swtch->_vector[0] == OPA->_vector[0] && swtch->_vector[1] == OPA->_vector[1] && swtch->_vector[2] == OPA->_vector[2])
-                       {
-                               RUNAWAYCHECK();
-                               st += (sofs)st->b-1; // -1 to offset the s++
-                       }
-                       break;
-               default:
-                       PR_RunError (progfuncs, "OP_CASE with bad/missing OP_SWITCH %i", swtchtype);
-                       break;
-               }
-               break;
-       case OP_CASERANGE:
-               switch(swtchtype)
-               {
-               case OP_SWITCH_F:
-                       if (swtch->_float >= OPA->_float && swtch->_float <= OPB->_float)
-                       {
-                               RUNAWAYCHECK();
-                               st += (sofs)st->c-1; // -1 to offset the s++
-                       }
-                       break;
-               default:
-                       PR_RunError (progfuncs, "OP_CASERANGE with bad/missing OP_SWITCH %i", swtchtype);
-               }
-               break;
-
-
-
-
-
-
-
-
-
-       case OP_BITAND_IF:
-               OPC->_int = (OPA->_int & (int)OPB->_float);
-               break;
-       case OP_BITOR_IF:
-               OPC->_int = (OPA->_int | (int)OPB->_float);
-               break;
-       case OP_BITAND_FI:
-               OPC->_int = ((int)OPA->_float & OPB->_int);
-               break;
-       case OP_BITOR_FI:
-               OPC->_int = ((int)OPA->_float | OPB->_int);
-               break;
-
-       case OP_MUL_IF:
-               OPC->_float = (OPA->_int * OPB->_float);
-               break;
-       case OP_MUL_FI:
-               OPC->_float = (OPA->_float * OPB->_int);
-               break;
-
-       case OP_MUL_VI:
-               OPC->_vector[0] = OPA->_vector[0] * OPB->_int;
-               OPC->_vector[1] = OPA->_vector[0] * OPB->_int;
-               OPC->_vector[2] = OPA->_vector[0] * OPB->_int;
-               break;
-       case OP_MUL_IV:
-               OPC->_vector[0] = OPB->_int * OPA->_vector[0];
-               OPC->_vector[1] = OPB->_int * OPA->_vector[1];
-               OPC->_vector[2] = OPB->_int * OPA->_vector[2];
-               break;
-
-       case OP_DIV_IF:
-               OPC->_float = (OPA->_int / OPB->_float);
-               break;
-       case OP_DIV_FI:
-               OPC->_float = (OPA->_float / OPB->_int);
-               break;
-
-       case OP_AND_I:
-               OPC->_int = (OPA->_int && OPB->_int);
-               break;
-       case OP_OR_I:
-               OPC->_int = (OPA->_int || OPB->_int);
-               break;
-
-       case OP_AND_IF:
-               OPC->_int = (OPA->_int && OPB->_float);
-               break;
-       case OP_OR_IF:
-               OPC->_int = (OPA->_int || OPB->_float);
-               break;
-
-       case OP_AND_FI:
-               OPC->_int = (OPA->_float && OPB->_int);
-               break;
-       case OP_OR_FI:
-               OPC->_int = (OPA->_float || OPB->_int);
-               break;
-
-       case OP_NOT_I:
-               OPC->_int = !OPA->_int;
-               break;
-
-       case OP_NE_IF:
-               OPC->_int = (OPA->_int != OPB->_float);
-               break;
-       case OP_NE_FI:
-               OPC->_int = (OPA->_float != OPB->_int);
-               break;
-
-       case OP_GADDRESS:
-       case OP_GLOAD_I:
-       case OP_GLOAD_F:
-       case OP_GLOAD_FLD:
-       case OP_GLOAD_ENT:
-       case OP_GLOAD_S:
-       case OP_GLOAD_FNC:
-               pr_xstatement = st-pr_statements;
-               PR_RunError(progfuncs, "Extra opcode not implemented\n");
-               break;
-
-       case OP_BOUNDCHECK:
-               if ((unsigned int)OPA->_int < (unsigned int)st->c || (unsigned int)OPA->_int >= (unsigned int)st->b)
-               {
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError(progfuncs, "Progs boundcheck failed. Value is %i. Must be between %u and %u", OPA->_int, st->c, st->b);
-               }
-               break;
-/*     case OP_PUSH:
-               OPC->_int = ENGINEPOINTER(&localstack[localstack_used+pr_spushed]);
-               pr_spushed += OPA->_int;
-               if (pr_spushed + localstack_used >= LOCALSTACK_SIZE)
-               {
-                       pr_spushed = 0;
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError(progfuncs, "Progs pushed too much");
-               }
-               break;
-       case OP_POP:
-               pr_spushed -= OPA->_int;
-               if (pr_spushed < 0)
-               {
-                       pr_spushed = 0;
-                       pr_xstatement = st-pr_statements;
-                       PR_RunError(progfuncs, "Progs poped more than it pushed");
-               }
-               break;
-*/
-       default:                                        
-               if (st->op & 0x8000)    //break point!
-               {
-                       pr_xstatement = s = st-pr_statements;
-
-                       printf("Break point hit in %s.\n", PR_StringToNative(progfuncs, pr_xfunction->s_name));
-                       if (pr_trace<1)
-                               pr_trace=1;     //this is what it's for
-
-                       s = ShowStep(progfuncs, s);
-                       st = &pr_statements[s]; //let the user move execution
-                       pr_xstatement = s = st-pr_statements;
-
-                       goto reeval;    //reexecute
-               }
-               pr_xstatement = st-pr_statements;
-               PR_RunError (progfuncs, "Bad opcode %i", st->op);
-       }
-}
-
-
-#undef cont
-#undef reeval
-#undef st
-#undef pr_statements
-#undef fakeop
-#undef dstatement_t
-#undef sofs
-#undef uofs
-#undef OPCODE
-
-#undef ENGINEPOINTER
-#undef QCPOINTER
-#undef QCPOINTERM
-
diff --git a/misc/source/fteqcc-src/gui.h b/misc/source/fteqcc-src/gui.h
deleted file mode 100644 (file)
index 341aedb..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-void GoToDefinition(char *name);
-void EditFile(char *name, int line);
-
-void GUI_SetDefaultOpts(void);
-int GUI_BuildParms(char *args, char **argv);
-
-unsigned char *QCC_ReadFile (const char *fname, void *buffer, int len);
-int QCC_FileSize (const char *fname);
-pbool QCC_WriteFile (const char *name, void *data, int len);
-void GUI_DialogPrint(char *title, char *text);
-
-extern char parameters[16384];
-
-extern char progssrcname[256];
-extern char progssrcdir[256];
-
-extern pbool fl_hexen2;
-extern pbool fl_autohighlight;
-extern pbool fl_compileonstart;
-extern pbool fl_showall;
-extern pbool fl_log;
diff --git a/misc/source/fteqcc-src/hash.c b/misc/source/fteqcc-src/hash.c
deleted file mode 100644 (file)
index 44ac211..0000000
+++ /dev/null
@@ -1,292 +0,0 @@
-#include "hash.h"
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef _WIN32
-#ifndef stricmp 
-#define stricmp strcasecmp
-#endif
-#endif
-
-// hash init assumes we get clean memory
-void Hash_InitTable(hashtable_t *table, unsigned int numbucks, void *mem)
-{
-       table->numbuckets = numbucks;
-       table->bucket = (bucket_t **)mem;
-}
-
-unsigned int Hash_Key(const char *name, unsigned int modulus)
-{      //fixme: optimize.
-       unsigned int key;
-       for (key=0;*name; name++)
-               key += ((key<<3) + (key>>28) + *name);
-               
-       return (key%modulus);
-}
-unsigned int Hash_KeyInsensative(const char *name, unsigned int modulus)
-{      //fixme: optimize.
-       unsigned int key;
-       for (key=0;*name; name++)
-       {
-               if (*name >= 'A' && *name <= 'Z')
-                       key += ((key<<3) + (key>>28) + (*name-'A'+'a'));
-               else
-                       key += ((key<<3) + (key>>28) + *name);
-       }
-               
-       return (key%modulus);
-}
-
-void *Hash_Get(hashtable_t *table, const char *name)
-{
-       unsigned int bucknum = Hash_Key(name, table->numbuckets);
-       bucket_t *buck;
-
-       buck = table->bucket[bucknum];
-
-       while(buck)
-       {
-               if (!STRCMP(name, buck->key.string))
-                       return buck->data;
-
-               buck = buck->next;
-       }
-       return NULL;
-}
-void *Hash_GetInsensative(hashtable_t *table, const char *name)
-{
-       unsigned int bucknum = Hash_KeyInsensative(name, table->numbuckets);
-       bucket_t *buck;
-
-       buck = table->bucket[bucknum];
-
-       while(buck)
-       {
-               if (!stricmp(name, buck->key.string))
-                       return buck->data;
-
-               buck = buck->next;
-       }
-       return NULL;
-}
-void *Hash_GetKey(hashtable_t *table, unsigned int key)
-{
-       unsigned int bucknum = key%table->numbuckets;
-       bucket_t *buck;
-
-       buck = table->bucket[bucknum];
-
-       while(buck)
-       {
-               if (buck->key.value == key)
-                       return buck->data;
-
-               buck = buck->next;
-       }
-       return NULL;
-}
-/*Does _NOT_ support items that are added with two names*/
-void *Hash_GetNextKey(hashtable_t *table, unsigned int key, void *old)
-{
-       unsigned int bucknum = key%table->numbuckets;
-       bucket_t *buck;
-
-       buck = table->bucket[bucknum];
-
-       while(buck)
-       {
-               if (buck->data == old)  //found the old one
-                       break;
-               buck = buck->next;
-       }
-       if (!buck)
-               return NULL;
-
-       buck = buck->next;//don't return old
-       while(buck)
-       {
-               if (buck->key.value == key)
-                       return buck->data;
-
-               buck = buck->next;
-       }
-       return NULL;
-}
-/*Does _NOT_ support items that are added with two names*/
-void *Hash_GetNext(hashtable_t *table, const char *name, void *old)
-{
-       unsigned int bucknum = Hash_Key(name, table->numbuckets);
-       bucket_t *buck;
-
-       buck = table->bucket[bucknum];
-
-       while(buck)
-       {
-               if (buck->data == old)  //found the old one
-//                     if (!STRCMP(name, buck->key.string))
-                               break;
-               buck = buck->next;
-       }
-       if (!buck)
-               return NULL;
-
-       buck = buck->next;//don't return old
-       while(buck)
-       {
-               if (!STRCMP(name, buck->key.string))
-                       return buck->data;
-
-               buck = buck->next;
-       }
-       return NULL;
-}
-/*Does _NOT_ support items that are added with two names*/
-void *Hash_GetNextInsensative(hashtable_t *table, const char *name, void *old)
-{
-       unsigned int bucknum = Hash_KeyInsensative(name, table->numbuckets);
-       bucket_t *buck;
-
-       buck = table->bucket[bucknum];
-
-       while(buck)
-       {
-               if (buck->data == old)  //found the old one
-               {
-//                     if (!stricmp(name, buck->key.string))
-                               break;
-               }
-
-               buck = buck->next;
-       }
-       if (!buck)
-               return NULL;
-
-       buck = buck->next;//don't return old
-       while(buck)
-       {
-               if (!stricmp(name, buck->key.string))
-                       return buck->data;
-
-               buck = buck->next;
-       }
-       return NULL;
-}
-
-
-void *Hash_Add(hashtable_t *table, const char *name, void *data, bucket_t *buck)
-{
-       unsigned int bucknum = Hash_Key(name, table->numbuckets);
-
-       buck->data = data;
-       buck->key.string = name;
-       buck->next = table->bucket[bucknum];
-       table->bucket[bucknum] = buck;
-
-       return buck;
-}
-void *Hash_AddInsensative(hashtable_t *table, const char *name, void *data, bucket_t *buck)
-{
-       unsigned int bucknum = Hash_KeyInsensative(name, table->numbuckets);
-
-       buck->data = data;
-       buck->key.string = name;
-       buck->next = table->bucket[bucknum];
-       table->bucket[bucknum] = buck;
-
-       return buck;
-}
-void *Hash_AddKey(hashtable_t *table, unsigned int key, void *data, bucket_t *buck)
-{
-       unsigned int bucknum = key%table->numbuckets;
-
-       buck->data = data;
-       buck->key.value = key;
-       buck->next = table->bucket[bucknum];
-       table->bucket[bucknum] = buck;
-
-       return buck;
-}
-
-void Hash_Remove(hashtable_t *table, const char *name)
-{
-       unsigned int bucknum = Hash_Key(name, table->numbuckets);
-       bucket_t *buck; 
-
-       buck = table->bucket[bucknum];
-
-       if (!STRCMP(name, buck->key.string))
-       {
-               table->bucket[bucknum] = buck->next;
-               return;
-       }
-
-
-       while(buck->next)
-       {
-               if (!STRCMP(name, buck->next->key.string))
-               {
-                       buck->next = buck->next->next;
-                       return;
-               }
-
-               buck = buck->next;
-       }
-       return;
-}
-
-void Hash_RemoveData(hashtable_t *table, const char *name, void *data)
-{
-       unsigned int bucknum = Hash_Key(name, table->numbuckets);
-       bucket_t *buck; 
-
-       buck = table->bucket[bucknum];
-
-       if (buck->data == data)
-               if (!STRCMP(name, buck->key.string))
-               {
-                       table->bucket[bucknum] = buck->next;
-                       return;
-               }
-
-
-       while(buck->next)
-       {
-               if (buck->next->data == data)
-                       if (!STRCMP(name, buck->next->key.string))
-                       {
-                               buck->next = buck->next->next;
-                               return;
-                       }
-
-               buck = buck->next;
-       }
-       return;
-}
-
-
-void Hash_RemoveKey(hashtable_t *table, unsigned int key)
-{
-       unsigned int bucknum = key%table->numbuckets;
-       bucket_t *buck; 
-
-       buck = table->bucket[bucknum];
-
-       if (buck->key.value == key)
-       {
-               table->bucket[bucknum] = buck->next;
-               return;
-       }
-
-
-       while(buck->next)
-       {
-               if (buck->next->key.value == key)
-               {
-                       buck->next = buck->next->next;
-                       return;
-               }
-
-               buck = buck->next;
-       }
-       return;
-}
diff --git a/misc/source/fteqcc-src/hash.h b/misc/source/fteqcc-src/hash.h
deleted file mode 100644 (file)
index e07c17d..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-//=============================
-//David's hash tables
-//string based.
-
-#ifndef HASH_H__
-#define HASH_H__
-
-#define Hash_BytesForBuckets(b) (sizeof(bucket_t*)*(b))
-
-#define STRCMP(s1,s2) (((*s1)!=(*s2)) || strcmp(s1+1,s2+1))    //saves about 2-6 out of 120 - expansion of idea from fastqcc
-typedef struct bucket_s {
-       void *data;
-       union {
-               const char *string;
-               unsigned int value;
-       } key;
-       struct bucket_s *next;
-} bucket_t;
-typedef struct hashtable_s {
-       unsigned int numbuckets;
-       bucket_t **bucket;
-} hashtable_t;
-
-void Hash_InitTable(hashtable_t *table, unsigned int numbucks, void *mem);     //mem must be 0 filled. (memset(mem, 0, size))
-unsigned int Hash_Key(const char *name, unsigned int modulus);
-void *Hash_Get(hashtable_t *table, const char *name);
-void *Hash_GetInsensative(hashtable_t *table, const char *name);
-void *Hash_GetKey(hashtable_t *table, unsigned int key);
-void *Hash_GetNext(hashtable_t *table, const char *name, void *old);
-void *Hash_GetNextInsensative(hashtable_t *table, const char *name, void *old);
-void *Hash_GetNextKey(hashtable_t *table, unsigned int key, void *old);
-void *Hash_Add(hashtable_t *table, const char *name, void *data, bucket_t *buck);
-void *Hash_AddInsensative(hashtable_t *table, const char *name, void *data, bucket_t *buck);
-void Hash_Remove(hashtable_t *table, const char *name);
-void Hash_RemoveData(hashtable_t *table, const char *name, void *data);
-void Hash_RemoveKey(hashtable_t *table, unsigned int key);
-void *Hash_AddKey(hashtable_t *table, unsigned int key, void *data, bucket_t *buck);
-
-#endif
diff --git a/misc/source/fteqcc-src/initlib.c b/misc/source/fteqcc-src/initlib.c
deleted file mode 100644 (file)
index 2260257..0000000
+++ /dev/null
@@ -1,1207 +0,0 @@
-#define PROGSUSED
-#include "progsint.h"
-#include <stdlib.h>
-
-typedef struct prmemb_s {
-       struct prmemb_s *prev;
-       int level;
-} prmemb_t;
-void *PRHunkAlloc(progfuncs_t *progfuncs, int ammount)
-{
-       prmemb_t *mem;
-       ammount = sizeof(prmemb_t)+((ammount + 3)&~3);
-       mem = memalloc(ammount); 
-       memset(mem, 0, ammount);
-       mem->prev = memb;
-       if (!memb)
-               mem->level = 1;
-       else
-               mem->level = ((prmemb_t *)memb)->level+1;
-       memb = mem;
-
-       return ((char *)mem)+sizeof(prmemb_t);
-}
-
-int PRHunkMark(progfuncs_t *progfuncs)
-{
-       return ((prmemb_t *)memb)->level;
-}
-void PRHunkFree(progfuncs_t *progfuncs, int mark)
-{
-       prmemb_t *omem;
-       while(memb)
-       {
-               if (memb->level <= mark)
-                       return;
-
-               omem = memb;
-               memb = memb->prev;
-               memfree(omem);
-       }
-       return;
-}
-
-/*if we ran out of memory, the vm can allocate a new block, but doing so requires fixing up all sorts of pointers*/
-void PRAddressableRelocate(progfuncs_t *progfuncs, char *oldb, char *newb, int oldlen)
-{
-       unsigned int i;
-       edictrun_t *e;
-       for (i=0 ; i<maxedicts; i++)
-       {
-               e = (edictrun_t *)(prinst->edicttable[i]);
-               if (e && (char*)e->fields >= oldb && (char*)e->fields < oldb+oldlen)
-                       e->fields = ((char*)e->fields - oldb) + newb;
-       }
-
-       if (progfuncs->stringtable >= oldb && progfuncs->stringtable < oldb+oldlen)
-               progfuncs->stringtable = (progfuncs->stringtable - oldb) + newb;
-
-       for (i=0; i < maxprogs; i++)
-       {
-               if ((char*)prinst->progstate[i].globals >= oldb && (char*)prinst->progstate[i].globals < oldb+oldlen)
-                       prinst->progstate[i].globals = (float*)(((char*)prinst->progstate[i].globals - oldb) + newb);
-               if (prinst->progstate[i].strings >= oldb && prinst->progstate[i].strings < oldb+oldlen)
-                       prinst->progstate[i].strings = (prinst->progstate[i].strings - oldb) + newb;
-       }
-
-       for (i = 0; i < numfields; i++)
-       {
-               if (field[i].name >= oldb && field[i].name < oldb+oldlen)
-                       field[i].name = (field[i].name - oldb) + newb;
-       }
-
-       externs->addressablerelocated(progfuncs, oldb, newb, oldlen);
-}
-
-//for 64bit systems. :)
-//addressable memory is memory available to the vm itself for writing.
-//once allocated, it cannot be freed for the lifetime of the VM.
-void *PRAddressableExtend(progfuncs_t *progfuncs, int ammount)
-{
-       ammount = (ammount + 4)&~3;     //round up to 4
-       if (prinst->addressableused + ammount > prinst->addressablesize)
-       {
-               /*only do this if the caller states that it can cope with addressable-block relocations/resizes*/
-               if (externs->addressablerelocated)
-               {
-#ifdef _WIN32
-                       char *newblock;
-               #if 0//def _DEBUG
-                       int oldtot = addressablesize;
-               #endif
-                       int newsize = (prinst->addressableused + ammount + 4096) & ~(4096-1);
-                       newblock = VirtualAlloc (NULL, prinst->addressablesize, MEM_RESERVE, PAGE_NOACCESS);
-                       if (newblock)
-                       {
-                               VirtualAlloc (newblock, prinst->addressableused, MEM_COMMIT, PAGE_READWRITE);
-                               memcpy(newblock, prinst->addressablehunk, prinst->addressableused);
-               #if 0//def _DEBUG
-                               VirtualAlloc (prinst->addressablehunk, oldtot, MEM_RESERVE, PAGE_NOACCESS);
-               #else
-                               VirtualFree (prinst->addressablehunk, 0, MEM_RELEASE);
-               #endif
-                               PRAddressableRelocate(progfuncs, prinst->addressablehunk, newblock, prinst->addressableused);
-                               prinst->addressablehunk = newblock;
-                               prinst->addressablesize = newsize;
-                       }
-#else
-                       char *newblock;
-                       int newsize = (prinst->addressableused + ammount + 1024*1024) & ~(1024*1024-1);
-                       newblock = realloc(newblock, prinst->addressablesize);
-                       if (newblock)
-                       {
-                               PRAddressableRelocate(progfuncs, prinst->addressablehunk, newblock, prinst->addressableused);
-                               prinst->addressablehunk = newblock;
-                               prinst->addressablesize = newsize;
-                       }
-#endif
-               }
-
-               if (prinst->addressableused + ammount > prinst->addressablesize)
-                       Sys_Error("Not enough addressable memory for progs VM");
-       }
-
-       prinst->addressableused += ammount;
-
-#ifdef _WIN32
-       if (!VirtualAlloc (prinst->addressablehunk, prinst->addressableused, MEM_COMMIT, PAGE_READWRITE))
-               Sys_Error("VirtualAlloc failed. Blame windows.");
-#endif
-
-       return &prinst->addressablehunk[prinst->addressableused-ammount];
-}
-
-
-#define MARKER 0xF1E3E3E7u
-typedef struct
-{
-       unsigned int next;
-       unsigned int prev;
-       unsigned int size;
-} qcmemfreeblock_t;
-typedef struct
-{
-       unsigned int marker;
-       unsigned int size;
-} qcmemusedblock_t;
-static void PF_fmem_unlink(progfuncs_t *pr, qcmemfreeblock_t *p)
-{
-       qcmemfreeblock_t *np;
-       if (p->prev)
-       {
-               np = (qcmemfreeblock_t*)(pr->stringtable + p->prev);
-               np->next = p->next;
-       }
-       else
-               pr->inst->mfreelist = p->next;
-       if (p->next)
-       {
-               np = (qcmemfreeblock_t*)(pr->stringtable + p->next);
-               np->prev = p->prev;
-       }
-}
-static void *PR_memalloc (progfuncs_t *progfuncs, unsigned int size)
-{
-       qcmemfreeblock_t *p, *np;
-       qcmemusedblock_t *ub = NULL;
-       unsigned int b,n;
-       /*round size up*/
-       size = (size+sizeof(qcmemusedblock_t) + 63) & ~63;
-
-       b = prinst->mfreelist;
-       while (b)
-       {
-               if (b < 0 || b >= prinst->addressableused)
-               {
-                       printf("PF_memalloc: memory corruption\n");
-                       PR_StackTrace(progfuncs);
-                       return NULL;
-               }
-               p = (qcmemfreeblock_t*)(progfuncs->stringtable + b);
-               if (p->size >= size)
-               {
-                       if (p->next && p->next < b + p->size ||
-                               p->next >= prinst->addressableused ||
-                               b + p->size >= prinst->addressableused ||
-                               p->prev >= b)
-                       {
-                               printf("PF_memalloc: memory corruption\n");
-                               PR_StackTrace(progfuncs);
-                               return NULL;
-                       }
-
-                       ub = (qcmemusedblock_t*)p;
-                       if (p->size > size + 63)
-                       {
-                               /*make a new header just after it, with basically the same properties, and shift the important fields over*/
-                               n = b + size;
-                               np = (qcmemfreeblock_t*)(progfuncs->stringtable + b + size);
-                               np->prev = p->prev;
-                               np->next = p->next;
-                               np->size = p->size - size;
-                               if (np->prev)
-                               {
-                                       p = (qcmemfreeblock_t*)(progfuncs->stringtable + np->prev);
-                                       p->next = n;
-                               }
-                               else
-                                       prinst->mfreelist = n;
-                               if (p->next)
-                               {
-                                       p = (qcmemfreeblock_t*)(progfuncs->stringtable + np->next);
-                                       p->prev = n;
-                               }
-                       }
-                       else
-                       {
-                               size = p->size; /*alloc the entire block*/
-                               /*unlink this entry*/
-                               PF_fmem_unlink(progfuncs, p);
-                       }
-                       break;
-               }
-       }
-
-       /*assign more space*/
-       if (!ub)
-       {
-               ub = PRAddressableExtend(progfuncs, size);
-               if (!ub)
-               {
-                       printf("PF_memalloc: memory exausted\n");
-                       PR_StackTrace(progfuncs);
-                       return NULL;
-               }
-       }
-       memset(ub, 0, size);
-       ub->marker = MARKER;
-       ub->size = size;
-       return ub+1;
-}
-static void PR_memfree (progfuncs_t *progfuncs, void *memptr)
-{
-       qcmemusedblock_t *ub;
-       qcmemfreeblock_t *p, *np; 
-       unsigned int l, ln;
-       unsigned int size;
-       unsigned int ptr = memptr?((char*)memptr - progfuncs->stringtable):0;
-
-       /*freeing NULL is ignored*/
-       if (!ptr)
-               return;
-       if (ptr < sizeof(qcmemusedblock_t) || ptr >= prinst->addressableused)
-       {
-               printf("PF_memfree: pointer invalid - out of range (%u >= %u)\n", ptr, prinst->addressableused);
-               PR_StackTrace(progfuncs);
-               return;
-       }
-
-       ub = (qcmemusedblock_t*)(progfuncs->stringtable + ptr);
-       ub--;
-       ptr = (char*)ub - progfuncs->stringtable;
-       if (ub->marker != MARKER || ub->size <= sizeof(*ub) || ptr + ub->size > (unsigned int)prinst->addressableused)
-       {
-               printf("PF_memfree: memory corruption or double free\n");
-               PR_StackTrace(progfuncs);
-               return;
-       }
-       ub->marker = 0;
-       size = ub->size;
-
-       for (ln = prinst->mfreelist, l = 0; ;)
-       {
-               if (ln < 0 || ln >= prinst->addressableused)
-               {
-                       printf("PF_memfree: memory corruption\n");
-                       PR_StackTrace(progfuncs);
-                       return;
-               }
-               if (!ln || ln >= ptr)
-               {
-                       np = (qcmemfreeblock_t*)(progfuncs->stringtable + l);
-                       if (l && l+np->size>ptr)
-                       {
-                               printf("PF_memfree: double free\n");
-                               PR_StackTrace(progfuncs);
-                               return;
-                       }
-
-                       /*generate the free block, now we know its proper values*/
-                       p = (qcmemfreeblock_t*)(progfuncs->stringtable + ptr);
-                       p->prev = l;
-                       p->next = ln;
-                       p->size = size;
-
-                       /*update the next's previous*/
-                       if (p->next)
-                       {
-                               np = (qcmemfreeblock_t*)(progfuncs->stringtable + p->next);
-                               np->prev = p->prev;
-                       
-                               /*extend this block and kill the next if they are adjacent*/
-                               if (p->next == ptr + size)
-                               {
-                                       p->size += np->size; 
-                                       PF_fmem_unlink(progfuncs, np);
-                               }
-                       }
-
-                       /*update the link to get here*/
-                       if (!l)
-                               prinst->mfreelist = ptr;
-                       else
-                       {
-                               np = (qcmemfreeblock_t*)(progfuncs->stringtable + l);
-                               np->next = ptr;
-
-                               /*we're adjacent to the previous block, so merge them by killing the newly freed region*/
-                               if (l + np->size == ptr)
-                               {
-                                       np->size += size;
-                                       PF_fmem_unlink(progfuncs, p);
-                               }
-                       }
-                       break;
-               }
-
-               l = ln;
-               p = (qcmemfreeblock_t*)(progfuncs->stringtable + l);
-               ln = p->next;
-       }
-}
-
-void PRAddressableFlush(progfuncs_t *progfuncs, int totalammount)
-{
-       prinst->addressableused = 0;
-       if (totalammount < 0)   //flush
-       {
-               totalammount = prinst->addressablesize;
-//             return;
-       }
-
-#ifdef _WIN32
-       if (prinst->addressablehunk && prinst->addressablesize != totalammount)
-       {
-               VirtualFree(prinst->addressablehunk, 0, MEM_RELEASE);   //doesn't this look complicated? :p
-               prinst->addressablehunk = NULL;
-       }
-       if (!prinst->addressablehunk)
-               prinst->addressablehunk = VirtualAlloc (prinst->addressablehunk, totalammount, MEM_RESERVE, PAGE_NOACCESS);
-#else
-       if (prinst->addressablehunk && prinst->addressablesize != totalammount)
-       {
-               free(prinst->addressablehunk);
-               prinst->addressablehunk = NULL;
-       }
-       if (!prinst->addressablehunk)
-               prinst->addressablehunk = malloc(totalammount); //linux will allocate-on-use anyway, which is handy.
-//     memset(prinst->addressablehunk, 0xff, totalammount);
-#endif
-       if (!prinst->addressablehunk)
-               Sys_Error("Out of memory\n");
-       prinst->addressablesize = totalammount;
-}
-
-int PR_InitEnts(progfuncs_t *progfuncs, int max_ents)
-{
-       maxedicts = max_ents;
-
-       sv_num_edicts = 0;
-
-       max_fields_size = fields_size;
-
-       prinst->edicttable = PRHunkAlloc(progfuncs, maxedicts*sizeof(struct edicts_s *));
-       sv_edicts = PRHunkAlloc(progfuncs, externs->edictsize);
-       prinst->edicttable[0] = sv_edicts;
-       ((edictrun_t*)prinst->edicttable[0])->fields = PRAddressableExtend(progfuncs, max_fields_size);
-       QC_ClearEdict(progfuncs, sv_edicts);
-       sv_num_edicts = 1;
-
-       if (externs->entspawn)
-               externs->entspawn((struct edict_s *)sv_edicts, false);
-
-       return max_fields_size;
-}
-edictrun_t tempedict;  //used as a safty buffer
-float tempedictfields[2048];
-
-void PR_Configure (progfuncs_t *progfuncs, int addressable_size, int max_progs)        //can be used to wipe all memory
-{
-       unsigned int i;
-       edictrun_t *e;
-
-       max_fields_size=0;
-       fields_size = 0;
-       progfuncs->stringtable = 0;
-       QC_StartShares(progfuncs);
-       QC_InitShares(progfuncs);
-
-       for ( i=1 ; i<maxedicts; i++)
-       {
-               e = (edictrun_t *)(prinst->edicttable[i]);
-               prinst->edicttable[i] = NULL;
-//             e->entnum = i;
-               if (e)
-                       memfree(e);
-       }
-
-       PRHunkFree(progfuncs, 0);       //clear mem - our hunk may not be a real hunk.
-       if (addressable_size<0)
-               addressable_size = 8*1024*1024;
-       PRAddressableFlush(progfuncs, addressable_size);
-
-       pr_progstate = PRHunkAlloc(progfuncs, sizeof(progstate_t) * max_progs);
-
-/*             for(a = 0; a < max_progs; a++)
-               {
-                       pr_progstate[a].progs = NULL;
-               }               
-*/
-               
-       maxprogs = max_progs;
-       pr_typecurrent=-1;
-
-       prinst->reorganisefields = false;
-
-       maxedicts = 1;
-       prinst->edicttable = &sv_edicts;
-       sv_num_edicts = 1;      //set up a safty buffer so things won't go horribly wrong too often
-       sv_edicts=(struct edict_s *)&tempedict;
-       tempedict.readonly = true;
-       tempedict.fields = tempedictfields;
-       tempedict.isfree = false;
-}
-
-
-
-struct globalvars_s *PR_globals (progfuncs_t *progfuncs, progsnum_t pnum)
-{
-       if (pnum < 0)
-       {
-               if (!current_progstate)
-               {
-                       static float fallback[RESERVED_OFS];
-                       return (struct globalvars_s *)fallback; //err.. you've not loaded one yet.
-               }
-               return (struct globalvars_s *)current_progstate->globals;
-       }
-       return (struct globalvars_s *)pr_progstate[pnum].globals;
-}
-
-struct entvars_s *PR_entvars (progfuncs_t *progfuncs, struct edict_s *ed)
-{
-       if (((edictrun_t *)ed)->isfree)
-               return NULL;
-
-       return (struct entvars_s *)edvars(ed);
-}
-
-int PR_GetFuncArgCount(progfuncs_t *progfuncs, func_t func)
-{
-       unsigned int pnum;
-       unsigned int fnum;
-       dfunction_t *f;
-
-       pnum = (func & 0xff000000)>>24;
-       fnum = (func & 0x00ffffff);
-
-       if (pnum >= (unsigned)maxprogs || !pr_progstate[pnum].functions)
-               return -1;
-       else if (fnum >= pr_progstate[pnum].progs->numfunctions)
-               return -1;
-       else
-       {
-               f = pr_progstate[pnum].functions + fnum;
-               return f->numparms;
-       }
-}
-
-func_t PR_FindFunc(progfuncs_t *progfuncs, char *funcname, progsnum_t pnum)
-{
-       dfunction_t *f=NULL;
-       if (pnum == PR_ANY)
-       {
-               for (pnum = 0; (unsigned)pnum < maxprogs; pnum++)
-               {
-                       if (!pr_progstate[pnum].progs)
-                               continue;
-                       f = ED_FindFunction(progfuncs, funcname, &pnum, pnum);
-                       if (f)
-                               break;
-               }
-       }
-       else if (pnum == PR_ANYBACK)    //run backwards
-       {
-               for (pnum = maxprogs-1; pnum >= 0; pnum--)
-               {
-                       if (!pr_progstate[pnum].progs)
-                               continue;
-                       f = ED_FindFunction(progfuncs, funcname, &pnum, pnum);
-                       if (f)
-                               break;
-               }
-       }
-       else
-               f = ED_FindFunction(progfuncs, funcname, &pnum, pnum);
-       if (!f)
-               return 0;
-
-       {
-       ddef16_t *var16;
-       ddef32_t *var32;
-       switch(pr_progstate[pnum].structtype)
-       {
-       case PST_KKQWSV:
-       case PST_DEFAULT:
-               var16 = ED_FindTypeGlobalFromProgs16(progfuncs, funcname, pnum, ev_function);   //we must make sure we actually have a function def - 'light' is defined as a field before it is defined as a function.
-               if (!var16)
-                       return (f - pr_progstate[pnum].functions) | (pnum << 24);
-               return *(int *)&pr_progstate[pnum].globals[var16->ofs];
-       case PST_QTEST:
-       case PST_FTE32:
-               var32 = ED_FindTypeGlobalFromProgs32(progfuncs, funcname, pnum, ev_function);   //we must make sure we actually have a function def - 'light' is defined as a field before it is defined as a function.
-               if (!var32)
-                       return (f - pr_progstate[pnum].functions) | (pnum << 24);
-               return *(int *)&pr_progstate[pnum].globals[var32->ofs]; 
-       }
-       Sys_Error("Error with def size (PR_FindFunc)"); 
-       }
-       return 0;
-}
-
-void QC_FindPrefixedGlobals(progfuncs_t *progfuncs, char *prefix, void (*found) (progfuncs_t *progfuncs, char *name, union eval_s *val, etype_t type) )
-{
-       unsigned int i;
-       ddef16_t                *def16;
-       ddef32_t                *def32;
-       int len = strlen(prefix);
-       unsigned int pnum;
-
-       for (pnum = 0; pnum < maxprogs; pnum++)
-       {
-               if (!pr_progstate[pnum].progs)
-                       continue;
-
-               switch(pr_progstate[pnum].structtype)
-               {
-               case PST_DEFAULT:
-               case PST_KKQWSV:
-                       for (i=1 ; i<pr_progstate[pnum].progs->numglobaldefs ; i++)
-                       {
-                               def16 = &pr_progstate[pnum].globaldefs16[i];
-                               if (!strncmp(def16->s_name+progfuncs->stringtable,prefix, len))
-                                       found(progfuncs, def16->s_name+progfuncs->stringtable, (eval_t *)&pr_progstate[pnum].globals[def16->ofs], def16->type);
-                       }
-                       break;
-               case PST_QTEST:
-               case PST_FTE32:
-                       for (i=1 ; i<pr_progstate[pnum].progs->numglobaldefs ; i++)
-                       {
-                               def32 = &pr_progstate[pnum].globaldefs32[i];
-                               if (!strncmp(def32->s_name+progfuncs->stringtable,prefix, len))
-                                       found(progfuncs, def32->s_name+progfuncs->stringtable, (eval_t *)&pr_progstate[pnum].globals[def32->ofs], def32->type);
-                       }
-                       break;
-               }
-       }
-}
-
-eval_t *PR_FindGlobal(progfuncs_t *progfuncs, char *globname, progsnum_t pnum, etype_t *type)
-{
-       unsigned int i;
-       ddef16_t *var16;
-       ddef32_t *var32;
-       if (pnum == PR_CURRENT)
-               pnum = pr_typecurrent;
-       if (pnum == PR_ANY)
-       {
-               eval_t *ev;
-               for (i = 0; i < maxprogs; i++)
-               {
-                       if (!pr_progstate[i].progs)
-                               continue;
-                       ev = PR_FindGlobal(progfuncs, globname, i, type);
-                       if (ev)
-                               return ev;
-               }
-               return NULL;
-       }
-       if (pnum < 0 || (unsigned)pnum >= maxprogs || !pr_progstate[pnum].progs)
-               return NULL;
-       switch(pr_progstate[pnum].structtype)
-       {
-       case PST_DEFAULT:
-       case PST_KKQWSV:
-               if (!(var16 = ED_FindGlobalFromProgs16(progfuncs, globname, pnum)))
-                       return NULL;
-
-               if (type)
-                       *type = var16->type;
-               return (eval_t *)&pr_progstate[pnum].globals[var16->ofs];
-       case PST_QTEST:
-       case PST_FTE32:
-               if (!(var32 = ED_FindGlobalFromProgs32(progfuncs, globname, pnum)))
-                       return NULL;
-
-               if (type)
-                       *type = var32->type;
-               return (eval_t *)&pr_progstate[pnum].globals[var32->ofs];
-       }
-       Sys_Error("Error with def size (PR_FindGlobal)");
-       return NULL;
-}
-
-void SetGlobalEdict(progfuncs_t *progfuncs, struct edict_s *ed, int ofs)
-{
-       ((int*)pr_globals)[ofs] = EDICT_TO_PROG(progfuncs, ed);
-}
-
-char *PR_VarString (progfuncs_t *progfuncs, int        first)
-{
-       int             i;
-       static char out[1024];
-       char *s;
-       
-       out[0] = 0;
-       for (i=first ; i<pr_argc ; i++)
-       {
-               if (G_STRING(OFS_PARM0+i*3))
-               {
-                       s=G_STRING((OFS_PARM0+i*3)) + progfuncs->stringtable;
-                       if (strlen(out) + strlen(s) + 1 >= sizeof(out))
-                               return out;
-                       strcat (out, s);
-               }
-       }
-       return out;
-}
-
-int PR_QueryField (progfuncs_t *progfuncs, unsigned int fieldoffset, etype_t *type, char **name, evalc_t *fieldcache)
-{
-       fdef_t *var;
-       var = ED_FieldAtOfs(progfuncs, fieldoffset);
-       if (!var)
-               return false;
-
-       if (type)
-               *type = var->type & ~(DEF_SAVEGLOBAL|DEF_SHARED);
-       if (name)
-               *name = var->name;
-       if (fieldcache)
-       {
-               fieldcache->ofs32 = var;
-               fieldcache->varname = var->name;
-       }
-               
-       return true;
-}
-
-eval_t *GetEdictFieldValue(progfuncs_t *progfuncs, struct edict_s *ed, char *name, evalc_t *cache)
-{
-       fdef_t *var;
-       if (!cache)
-       {
-               var = ED_FindField(progfuncs, name);
-               if (!var)
-                       return NULL;
-               return (eval_t *) &(((int*)(((edictrun_t*)ed)->fields))[var->ofs]);
-       }
-       if (!cache->varname)
-       {
-               cache->varname = name;
-               var = ED_FindField(progfuncs, name);            
-               if (!var)
-               {
-                       cache->ofs32 = NULL;
-                       return NULL;
-               }
-               cache->ofs32 = var;
-               cache->varname = var->name;
-               if (!ed)
-                       return (void*)~0;       //something not null
-               return (eval_t *) &(((int*)(((edictrun_t*)ed)->fields))[var->ofs]);
-       }
-       if (cache->ofs32 == NULL)
-               return NULL;
-       return (eval_t *) &(((int*)(((edictrun_t*)ed)->fields))[cache->ofs32->ofs]);
-}
-
-struct edict_s *ProgsToEdict (progfuncs_t *progfuncs, int progs)
-{
-       if ((unsigned)progs >= (unsigned)maxedicts)
-       {
-               printf("Bad entity index %i\n", progs);
-               progs = 0;
-       }
-       return (struct edict_s *)PROG_TO_EDICT(progfuncs, progs);
-}
-int EdictToProgs (progfuncs_t *progfuncs, struct edict_s *ed)
-{
-       return EDICT_TO_PROG(progfuncs, ed);
-}
-
-string_t PR_StringToProgs                      (progfuncs_t *progfuncs, char *str)
-{
-       char **ntable;
-       int i, free=-1;
-
-       if (!str)
-               return 0;
-
-       if (str >= progfuncs->stringtable && str < progfuncs->stringtable + prinst->addressableused)
-               return str - progfuncs->stringtable;
-
-       for (i = prinst->numallocedstrings-1; i >= 0; i--)
-       {
-               if (prinst->allocedstrings[i] == str)
-                       return (string_t)((unsigned int)i | 0x80000000);
-               if (!prinst->allocedstrings[i])
-                       free = i;
-       }
-
-       if (free != -1)
-       {
-               i = free;
-               prinst->allocedstrings[i] = str;
-               return (string_t)((unsigned int)i | 0x80000000);
-       }
-
-       prinst->maxallocedstrings += 1024;
-       ntable = memalloc(sizeof(char*) * prinst->maxallocedstrings); 
-       memcpy(ntable, prinst->allocedstrings, sizeof(char*) * prinst->numallocedstrings);
-       memset(ntable + prinst->numallocedstrings, 0, sizeof(char*) * (prinst->maxallocedstrings - prinst->numallocedstrings));
-       prinst->numallocedstrings = prinst->maxallocedstrings;
-       if (prinst->allocedstrings)
-               memfree(prinst->allocedstrings);
-       prinst->allocedstrings = ntable;
-
-       for (i = prinst->numallocedstrings-1; i >= 0; i--)
-       {
-               if (!prinst->allocedstrings[i])
-               {
-                       prinst->allocedstrings[i] = str;
-                       return (string_t)((unsigned int)i | 0x80000000);
-               }
-       }
-
-       return 0;
-}
-
-char *PR_RemoveProgsString                             (progfuncs_t *progfuncs, string_t str)
-{
-       char *ret;
-
-       //input string is expected to be an allocated string
-       //if its a temp, or a constant, just return NULL.
-       if ((unsigned int)str & 0xc0000000)
-       {
-               if ((unsigned int)str & 0x80000000)
-               {
-                       int i = str & ~0x80000000;
-                       if (i >= prinst->numallocedstrings)
-                       {
-                               pr_trace = 1;
-                               return NULL;
-                       }
-                       if (prinst->allocedstrings[i])
-                       {
-                               ret = prinst->allocedstrings[i];
-                               prinst->allocedstrings[i] = NULL;       //remove it
-                               return ret;
-                       }
-                       else
-                       {
-                               pr_trace = 1;
-                               return NULL;    //urm, was freed...
-                       }
-               }
-       }
-       pr_trace = 1;
-       return NULL;
-}
-
-char *ASMCALL PR_StringToNative                                (progfuncs_t *progfuncs, string_t str)
-{
-       if ((unsigned int)str & 0xc0000000)
-       {
-               if ((unsigned int)str & 0x80000000)
-               {
-                       int i = str & ~0x80000000;
-                       if (i >= prinst->numallocedstrings)
-                       {
-                               printf("invalid string %x\n", str);
-                               PR_StackTrace(progfuncs);
-                               pr_trace = 1;
-                               return "";
-                       }
-                       if (prinst->allocedstrings[i])
-                               return prinst->allocedstrings[i];
-                       else
-                       {
-                               printf("invalid string %x\n", str);
-                               PR_StackTrace(progfuncs);
-                               pr_trace = 1;
-                               return "";      //urm, was freed...
-                       }
-               }
-               if ((unsigned int)str & 0x40000000)
-               {
-                       int i = str & ~0x40000000;
-                       if (i >= prinst->numtempstrings)
-                       {
-                               printf("invalid temp string %x\n", str);
-                               PR_StackTrace(progfuncs);
-                               pr_trace = 1;
-                               return "";
-                       }
-                       return prinst->tempstrings[i];
-               }
-       }
-
-       if ((unsigned int)str >= (unsigned int)prinst->addressableused)
-       {
-               printf("invalid string offset %x\n", str);
-               PR_StackTrace(progfuncs);
-               pr_trace = 1;
-               return "";
-       }
-       return progfuncs->stringtable + str;
-}
-
-
-string_t PR_AllocTempString                    (progfuncs_t *progfuncs, char *str)
-{
-       char **ntable;
-       int newmax;
-       int i;
-
-       if (!str)
-               return 0;
-
-       if (prinst->numtempstrings == prinst->maxtempstrings)
-       {
-               newmax = prinst->maxtempstrings += 1024;
-               prinst->maxtempstrings += 1024;
-               ntable = memalloc(sizeof(char*) * newmax);
-               memcpy(ntable, prinst->tempstrings, sizeof(char*) * prinst->numtempstrings);
-               prinst->maxtempstrings = newmax;
-               if (prinst->tempstrings)
-                       memfree(prinst->tempstrings);
-               prinst->tempstrings = ntable;
-       }
-
-       i = prinst->numtempstrings;
-       if (i == 0x10000000)
-               return 0;
-
-       prinst->numtempstrings++;
-
-       prinst->tempstrings[i] = memalloc(strlen(str)+1);
-       strcpy(prinst->tempstrings[i], str);
-
-       return (string_t)((unsigned int)i | 0x40000000);
-}
-string_t PR_AllocTempStringLen                 (progfuncs_t *progfuncs, char **str, unsigned int len)
-{
-       char **ntable;
-       int newmax;
-       int i;
-
-       if (!str)
-               return 0;
-
-       if (prinst->numtempstrings == prinst->maxtempstrings)
-       {
-               newmax = prinst->maxtempstrings += 1024;
-               prinst->maxtempstrings += 1024;
-               ntable = memalloc(sizeof(char*) * newmax);
-               memcpy(ntable, prinst->tempstrings, sizeof(char*) * prinst->numtempstrings);
-               prinst->maxtempstrings = newmax;
-               if (prinst->tempstrings)
-                       memfree(prinst->tempstrings);
-               prinst->tempstrings = ntable;
-       }
-
-       i = prinst->numtempstrings;
-       if (i == 0x10000000)
-               return 0;
-
-       prinst->numtempstrings++;
-
-       prinst->tempstrings[i] = memalloc(len);
-       *str = prinst->tempstrings[i];
-
-       return (string_t)((unsigned int)i | 0x40000000);
-}
-
-void PR_FreeTemps                      (progfuncs_t *progfuncs, int depth)
-{
-       int i;
-       if (depth > prinst->numtempstrings)
-       {
-               Sys_Error("QC Temp stack inverted\n");
-               return;
-       }
-       for (i = depth; i < prinst->numtempstrings; i++)
-       {
-               memfree(prinst->tempstrings[i]);
-       }
-
-       prinst->numtempstrings = depth;
-}
-
-
-struct qcthread_s *PR_ForkStack        (progfuncs_t *progfuncs);
-void PR_ResumeThread                   (progfuncs_t *progfuncs, struct qcthread_s *thread);
-void   PR_AbortStack                   (progfuncs_t *progfuncs);
-
-
-void RegisterBuiltin(progfuncs_t *progfncs, char *name, builtin_t func);
-
-progfuncs_t deffuncs = {
-       PROGSTRUCT_VERSION,
-       PR_Configure,
-       PR_LoadProgs,
-       PR_InitEnts,
-       PR_ExecuteProgram,
-       PR_SwitchProgs,
-       PR_globals,
-       PR_entvars,
-       PR_RunError,
-       ED_Print,
-       ED_Alloc,
-       ED_Free,
-
-       EDICT_NUM,
-       NUM_FOR_EDICT,
-
-
-       SetGlobalEdict,
-
-       PR_VarString,
-
-       NULL,
-       PR_FindFunc,
-#ifdef MINIMAL
-       NULL,
-       NULL,
-#else
-       Comp_Begin,
-       Comp_Continue,
-#endif
-
-       filefromprogs,
-       NULL,//filefromnewprogs,
-
-       SaveEnts,
-       LoadEnts,
-
-       SaveEnt,
-       RestoreEnt,
-
-       PR_FindGlobal,
-       ED_NewString,
-       (void*)PRHunkAlloc,
-
-       GetEdictFieldValue,
-       ProgsToEdict,
-       EdictToProgs,
-
-       EvaluateDebugString,
-
-       NULL,
-       PR_StackTrace,
-
-       PR_ToggleBreakpoint,
-       0,
-       NULL,
-#ifdef MINIMAL
-       NULL,
-#else
-       Decompile,
-#endif
-       NULL,
-       NULL,
-       RegisterBuiltin,
-
-       0,
-       0,
-
-       PR_ForkStack,
-       PR_ResumeThread,
-       PR_AbortStack,
-
-       0,
-
-       QC_RegisterFieldVar,
-
-       0,
-       0,
-
-       PR_AllocTempString,
-
-       PR_StringToProgs,
-       PR_StringToNative,
-       0,
-       PR_QueryField,
-       QC_ClearEdict,
-       QC_FindPrefixedGlobals,
-       PR_memalloc,
-       PR_AllocTempStringLen,
-       PR_memfree,
-};
-#undef printf
-
-//defs incase following structure is not passed.
-struct edict_s *safesv_edicts;
-int safesv_num_edicts;
-double safetime=0;
-
-progexterns_t defexterns = {
-       PROGSTRUCT_VERSION,             
-
-       NULL, //char *(*ReadFile) (char *fname, void *buffer, int len);
-       NULL, //int (*FileSize) (char *fname);  //-1 if file does not exist
-       NULL, //bool (*WriteFile) (char *name, void *data, int len);
-       printf, //void (*printf) (char *, ...);
-       (void*)exit, //void (*Sys_Error) (char *, ...);
-       NULL, //void (*Abort) (char *, ...);
-       sizeof(edictrun_t), //int edictsize;    //size of edict_t
-
-       NULL, //void (*entspawn) (struct edict_s *ent); //ent has been spawned, but may not have all the extra variables (that may need to be set) set
-       NULL, //bool (*entcanfree) (struct edict_s *ent);       //return true to stop ent from being freed
-       NULL, //void (*stateop) (float var, func_t func);
-       NULL,
-       NULL,
-       NULL,
-
-       //used when loading a game
-       NULL, //builtin_t *(*builtinsfor) (int num);    //must return a pointer to the builtins that were used before the state was saved.
-       NULL, //void (*loadcompleate) (int edictsize);  //notification to reset any pointers.
-       NULL,
-
-       (void*)malloc, //void *(*memalloc) (int size);  //small string allocation       malloced and freed randomly by the executor. (use memalloc if you want)
-       free, //void (*memfree) (void * mem);
-
-
-       NULL, //builtin_t *globalbuiltins;      //these are available to all progs
-       0, //int numglobalbuiltins;
-
-       PR_NOCOMPILE,
-
-       &safetime, //double *gametime;
-
-       &safesv_edicts, //struct edict_s **sv_edicts;
-       &safesv_num_edicts, //int *sv_num_edicts;
-
-       NULL, //int (*useeditor) (char *filename, int line, int nump, char **parms);
-};
-
-//progfuncs_t *progfuncs = NULL;
-#undef memfree
-#undef prinst
-#undef extensionbuiltin
-#undef field
-#undef shares
-#undef maxedicts
-#undef sv_num_edicts
-
-
-#ifdef QCLIBDLL_EXPORTS
-__declspec(dllexport)
-#endif 
-void CloseProgs(progfuncs_t *inst)
-{
-//     extensionbuiltin_t *eb;
-       void (VARGS *f) (void *);
-
-       unsigned int i;
-       edictrun_t *e;
-
-       f = inst->parms->memfree;
-
-       for ( i=1 ; i<inst->inst->maxedicts; i++)
-       {
-               e = (edictrun_t *)(inst->inst->edicttable[i]);
-               inst->inst->edicttable[i] = NULL;
-               if (e)
-               {
-//                     e->entnum = i;
-                       f(e);
-               }
-       }
-
-       PRHunkFree(inst, 0);
-
-#ifdef _WIN32
-       VirtualFree(inst->inst->addressablehunk, 0, MEM_RELEASE);       //doesn't this look complicated? :p
-#else
-       free(inst->inst->addressablehunk);
-#endif
-
-       if (inst->inst->allocedstrings)
-               f(inst->inst->allocedstrings);
-       inst->inst->allocedstrings = NULL;
-       if (inst->inst->tempstrings)
-               f(inst->inst->tempstrings);
-       inst->inst->tempstrings = NULL;
-
-
-/*
-       while(inst->prinst->extensionbuiltin)
-       {
-               eb = inst->prinst->extensionbuiltin->prev;
-               f(inst->prinst->extensionbuiltin);
-               inst->prinst->extensionbuiltin = eb;
-       }
-*/
-       if (inst->inst->field)
-               f(inst->inst->field);
-       if (inst->inst->shares)
-               f(inst->inst->shares);  //free memory
-       f(inst->inst);
-       f(inst);
-}
-
-void RegisterBuiltin(progfuncs_t *progfuncs, char *name, builtin_t func)
-{
-/*
-       extensionbuiltin_t *eb;
-       eb = memalloc(sizeof(extensionbuiltin_t));
-       eb->prev = progfuncs->prinst->extensionbuiltin;
-       progfuncs->prinst->extensionbuiltin = eb;
-       eb->name = name;
-       eb->func = func;
-*/
-}
-
-#ifndef WIN32
-#define QCLIBINT       //don't use dllspecifications
-#endif
-
-#if defined(QCLIBDLL_EXPORTS)
-__declspec(dllexport)
-#endif
-progfuncs_t * InitProgs(progexterns_t *ext)
-{      
-       progfuncs_t *funcs;
-
-       if (!ext)
-               ext = &defexterns;
-       else
-       {
-               int i;
-               if (ext->progsversion > PROGSTRUCT_VERSION)
-                       return NULL;
-
-               for (i=0;i<sizeof(progexterns_t); i+=4) //make sure there are no items left out.
-                       if (!*(int *)((char *)ext+i))
-                               *(int *)((char *)ext+i) = *(int *)((char *)&defexterns+i);              
-       }       
-#undef memalloc
-#undef pr_trace
-#undef pr_progstate
-#undef pr_argc
-       funcs = ext->memalloc(sizeof(progfuncs_t));     
-       memcpy(funcs, &deffuncs, sizeof(progfuncs_t));
-
-       funcs->inst = ext->memalloc(sizeof(prinst_t));
-       memset(funcs->inst,0, sizeof(prinst_t));
-
-       funcs->pr_trace = &funcs->inst->pr_trace;
-       funcs->progstate = &funcs->inst->progstate;
-       funcs->callargc = &funcs->inst->pr_argc;
-
-       funcs->parms = ext;
-
-       SetEndian();
-       
-       return funcs;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#ifdef QCC
-void main (int argc, char **argv)
-{
-       progexterns_t ext;
-
-       progfuncs_t *funcs;
-       funcs = InitProgs(&ext);
-       if (funcs->PR_StartCompile(argc, argv))
-               while(funcs->PR_ContinueCompile());
-}
-#endif
diff --git a/misc/source/fteqcc-src/pr_comp.h b/misc/source/fteqcc-src/pr_comp.h
deleted file mode 100644 (file)
index 3559086..0000000
+++ /dev/null
@@ -1,575 +0,0 @@
-// this file is shared by the execution and compiler
-
-/*i'm part way through making this work
-I've given up now that I can't work out a way to load pointers.
-Setting them should be fine.
-*/
-#ifndef __PR_COMP_H__
-#define __PR_COMP_H__
-
-
-/*this distinction is made as the execution uses c pointers while compiler uses pointers from the start of the string table of the current progs*/
-#ifdef COMPILER
-typedef int QCC_string_t;
-#else
-//typedef char *string_t;
-#endif
-
-//typedef enum {ev_void, ev_string, ev_float, ev_vector, ev_entity, ev_field, ev_function, ev_pointer, ev_integer, ev_struct, ev_union} etype_t;
-//                             0                       1               2                       3                       4               5                       6                               7                       8               9                       10
-
-#define        OFS_NULL                0
-#define        OFS_RETURN              1
-#define        OFS_PARM0               4               // leave 3 ofs for each parm to hold vectors
-#define        OFS_PARM1               7
-#define        OFS_PARM2               10
-#define        OFS_PARM3               13
-#define        OFS_PARM4               16
-#define        OFS_PARM5               19
-#define        OFS_PARM6               22
-#define        OFS_PARM7               25
-#define        RESERVED_OFS    28
-
-
-enum qcop_e {
-       OP_DONE,        //0
-       OP_MUL_F,
-       OP_MUL_V,
-       OP_MUL_FV,
-       OP_MUL_VF,
-       OP_DIV_F,
-       OP_ADD_F,
-       OP_ADD_V,
-       OP_SUB_F,
-       OP_SUB_V,
-       
-       OP_EQ_F,        //10
-       OP_EQ_V,
-       OP_EQ_S,
-       OP_EQ_E,
-       OP_EQ_FNC,
-       
-       OP_NE_F,
-       OP_NE_V,
-       OP_NE_S,
-       OP_NE_E,
-       OP_NE_FNC,
-       
-       OP_LE_F,        //20
-       OP_GE_F,
-       OP_LT_F,
-       OP_GT_F,
-
-       OP_LOAD_F,
-       OP_LOAD_V,
-       OP_LOAD_S,
-       OP_LOAD_ENT,
-       OP_LOAD_FLD,
-       OP_LOAD_FNC,
-
-       OP_ADDRESS,     //30
-
-       OP_STORE_F,
-       OP_STORE_V,
-       OP_STORE_S,
-       OP_STORE_ENT,
-       OP_STORE_FLD,
-       OP_STORE_FNC,
-
-       OP_STOREP_F,
-       OP_STOREP_V,
-       OP_STOREP_S,
-       OP_STOREP_ENT,  //40
-       OP_STOREP_FLD,
-       OP_STOREP_FNC,
-
-       OP_RETURN,
-       OP_NOT_F,
-       OP_NOT_V,
-       OP_NOT_S,
-       OP_NOT_ENT,
-       OP_NOT_FNC,
-       OP_IF_I,
-       OP_IFNOT_I,             //50
-       OP_CALL0,               //careful... hexen2 and q1 have different calling conventions
-       OP_CALL1,               //remap hexen2 calls to OP_CALL2H
-       OP_CALL2,
-       OP_CALL3,
-       OP_CALL4,
-       OP_CALL5,
-       OP_CALL6,
-       OP_CALL7,
-       OP_CALL8,
-       OP_STATE,               //60
-       OP_GOTO,
-       OP_AND_F,
-       OP_OR_F,
-       
-       OP_BITAND_F,
-       OP_BITOR_F,
-
-       
-       //these following ones are Hexen 2 constants.
-       
-       OP_MULSTORE_F,
-       OP_MULSTORE_VF,
-       OP_MULSTOREP_F,
-       OP_MULSTOREP_VF,
-
-       OP_DIVSTORE_F,  //70
-       OP_DIVSTOREP_F,
-
-       OP_ADDSTORE_F,
-       OP_ADDSTORE_V,
-       OP_ADDSTOREP_F,
-       OP_ADDSTOREP_V,
-
-       OP_SUBSTORE_F,
-       OP_SUBSTORE_V,
-       OP_SUBSTOREP_F,
-       OP_SUBSTOREP_V,
-
-       OP_FETCH_GBL_F, //80
-       OP_FETCH_GBL_V,
-       OP_FETCH_GBL_S,
-       OP_FETCH_GBL_E,
-       OP_FETCH_GBL_FNC,
-
-       OP_CSTATE,
-       OP_CWSTATE,
-
-       OP_THINKTIME,
-
-       OP_BITSET,
-       OP_BITSETP,
-       OP_BITCLR,              //90
-       OP_BITCLRP,
-
-       OP_RAND0,
-       OP_RAND1,
-       OP_RAND2,
-       OP_RANDV0,
-       OP_RANDV1,
-       OP_RANDV2,
-
-       OP_SWITCH_F,
-       OP_SWITCH_V,
-       OP_SWITCH_S,    //100
-       OP_SWITCH_E,
-       OP_SWITCH_FNC,
-
-       OP_CASE,
-       OP_CASERANGE,
-
-
-
-
-
-       //the rest are added
-       //mostly they are various different ways of adding two vars with conversions.
-
-       OP_CALL1H,
-       OP_CALL2H,
-       OP_CALL3H,
-       OP_CALL4H,
-       OP_CALL5H,
-       OP_CALL6H,              //110
-       OP_CALL7H,
-       OP_CALL8H,
-
-
-       OP_STORE_I,
-       OP_STORE_IF,
-       OP_STORE_FI,
-       
-       OP_ADD_I,
-       OP_ADD_FI,
-       OP_ADD_IF,
-  
-       OP_SUB_I,
-       OP_SUB_FI,              //120
-       OP_SUB_IF,
-
-       OP_CONV_ITOF,
-       OP_CONV_FTOI,
-       OP_CP_ITOF,
-       OP_CP_FTOI,
-       OP_LOAD_I,
-       OP_STOREP_I,
-       OP_STOREP_IF,
-       OP_STOREP_FI,
-
-       OP_BITAND_I,    //130
-       OP_BITOR_I,
-
-       OP_MUL_I,
-       OP_DIV_I,
-       OP_EQ_I,
-       OP_NE_I,
-
-       OP_IFNOT_S,
-       OP_IF_S,
-
-       OP_NOT_I,
-
-       OP_DIV_VF,
-
-       OP_XOR_I,               //140
-       OP_RSHIFT_I,
-       OP_LSHIFT_I,
-
-       OP_GLOBALADDRESS,
-       OP_POINTER_ADD, //32 bit pointers
-
-       OP_LOADA_F,
-       OP_LOADA_V,     
-       OP_LOADA_S,
-       OP_LOADA_ENT,
-       OP_LOADA_FLD,
-       OP_LOADA_FNC,   //150
-       OP_LOADA_I,
-
-       OP_STORE_P,     //152... erm.. wait...
-       OP_LOAD_P,
-
-       OP_LOADP_F,
-       OP_LOADP_V,     
-       OP_LOADP_S,
-       OP_LOADP_ENT,
-       OP_LOADP_FLD,
-       OP_LOADP_FNC,
-       OP_LOADP_I,             //160
-
-       OP_LE_I,
-       OP_GE_I,
-       OP_LT_I,
-       OP_GT_I,
-
-       OP_LE_IF,
-       OP_GE_IF,
-       OP_LT_IF,
-       OP_GT_IF,
-
-       OP_LE_FI,
-       OP_GE_FI,               //170
-       OP_LT_FI,
-       OP_GT_FI,
-
-       OP_EQ_IF,
-       OP_EQ_FI,
-
-       //-------------------------------------
-       //string manipulation.
-       OP_ADD_SF,      //(char*)c = (char*)a + (float)b    add_fi->i
-       OP_SUB_S,       //(float)c = (char*)a - (char*)b    sub_ii->f
-       OP_STOREP_C,//(float)c = *(char*)b = (float)a
-       OP_LOADP_C,     //(float)c = *(char*)
-       //-------------------------------------
-
-
-       OP_MUL_IF,
-       OP_MUL_FI,              //180
-       OP_MUL_VI,
-       OP_MUL_IV,
-       OP_DIV_IF,
-       OP_DIV_FI,
-       OP_BITAND_IF,
-       OP_BITOR_IF,
-       OP_BITAND_FI,
-       OP_BITOR_FI,
-       OP_AND_I,
-       OP_OR_I,                //190
-       OP_AND_IF,
-       OP_OR_IF,
-       OP_AND_FI,
-       OP_OR_FI,
-       OP_NE_IF,
-       OP_NE_FI,
-
-//erm... FTEQCC doesn't make use of these... These are for DP.
-       OP_GSTOREP_I,
-       OP_GSTOREP_F,
-       OP_GSTOREP_ENT,
-       OP_GSTOREP_FLD,         // integers   //200
-       OP_GSTOREP_S,
-       OP_GSTOREP_FNC,         // pointers
-       OP_GSTOREP_V,
-       OP_GADDRESS,
-       OP_GLOAD_I,
-       OP_GLOAD_F,
-       OP_GLOAD_FLD,
-       OP_GLOAD_ENT,
-       OP_GLOAD_S,
-       OP_GLOAD_FNC,           //210
-       OP_BOUNDCHECK,
-
-//back to ones that we do use.
-       OP_UNUSED,      //used to be OP_STOREP_P, which is now emulated with OP_STOREP_I, fteqcc nor fte generated it
-       OP_PUSH,        //push 4octets onto the local-stack (which is ALWAYS poped on function return). Returns a pointer.
-       OP_POP,         //pop those ones that were pushed (don't over do it). Needs assembler.
-
-       OP_SWITCH_I,//hmm.
-       OP_GLOAD_V,
-
-       OP_IF_F,
-       OP_IFNOT_F,
-
-       OP_NUMREALOPS,
-
-       /*
-       These ops are emulated out, always, and are only present in the compiler.
-       */
-
-       OP_BITSET_I,    //220
-       OP_BITSETP_I,
-
-       OP_MULSTORE_I,
-       OP_DIVSTORE_I,
-       OP_ADDSTORE_I,
-       OP_SUBSTORE_I,
-       OP_MULSTOREP_I,
-       OP_DIVSTOREP_I,
-       OP_ADDSTOREP_I,
-       OP_SUBSTOREP_I,
-
-       OP_MULSTORE_IF, //230
-       OP_MULSTOREP_IF,
-       OP_DIVSTORE_IF,
-       OP_DIVSTOREP_IF,
-       OP_ADDSTORE_IF,
-       OP_ADDSTOREP_IF,
-       OP_SUBSTORE_IF,
-       OP_SUBSTOREP_IF,
-
-       OP_MULSTORE_FI,
-       OP_MULSTOREP_FI,
-       OP_DIVSTORE_FI,         //240
-       OP_DIVSTOREP_FI,
-       OP_ADDSTORE_FI,
-       OP_ADDSTOREP_FI,
-       OP_SUBSTORE_FI,
-       OP_SUBSTOREP_FI,
-
-       OP_MULSTORE_VI,
-       OP_MULSTOREP_VI,
-
-       OP_LOADA_STRUCT,
-       OP_STOREP_P,
-
-       OP_NUMOPS
-};
-
-#define        MAX_PARMS       8
-
-// qtest structs (used for reordering and not execution)
-typedef struct qtest_statement_s
-{
-       unsigned int    line; // line number in source code file
-       unsigned short  op;
-       unsigned short  a,b,c;
-} qtest_statement_t;
-
-typedef struct qtest_def_s
-{
-       unsigned int    type; // no DEFGLOBAL found in qtest progs
-       unsigned int    s_name; // different order!
-       unsigned int    ofs;
-} qtest_def_t;
-
-typedef struct qtest_function_s
-{
-       int             first_statement;
-       int             unused1;
-       int             locals; // assumed! (always 0 in real qtest progs)
-       int             profile; // assumed! (always 0 in real qtest progs)
-       
-       int             s_name;
-       int             s_file;
-       
-       int             numparms;
-       int             parm_start; // different order
-       int             parm_size[MAX_PARMS]; // ints instead of bytes...
-} qtest_function_t;
-
-#ifndef COMPILER
-typedef struct statement16_s
-{
-       unsigned short  op;
-       unsigned short  a,b,c;
-} dstatement16_t;
-typedef struct statement32_s
-{
-       unsigned int    op;
-       unsigned int    a,b,c;
-} dstatement32_t;
-#else
-typedef struct QCC_statement16_s
-{
-       unsigned short  op;
-       unsigned short  a,b,c;
-} QCC_dstatement16_t;
-typedef struct QCC_statement32_s
-{
-       unsigned int    op;
-       unsigned int    a,b,c;
-} QCC_dstatement32_t;
-#define QCC_dstatement_t QCC_dstatement32_t
-#endif
-
-//these should be the same except the string type
-#ifndef COMPILER
-typedef struct ddef16_s
-{
-       unsigned short  type;           // if DEF_SAVEGLOBAL bit is set
-                                                               // the variable needs to be saved in savegames
-       unsigned short  ofs;
-       string_t                s_name;
-} ddef16_t;
-
-typedef struct ddef32_s
-{
-       unsigned int    type;           // if DEF_SAVEGLOBAL bit is set
-                                                               // the variable needs to be saved in savegames
-       unsigned int    ofs;
-       string_t                s_name;
-} ddef32_t;
-
-typedef struct fdef_s
-{
-       unsigned int    type;           // if DEF_SAVEGLOBAL bit is set
-                                                               // the variable needs to be saved in savegames
-       unsigned int    ofs;
-       unsigned int    progsofs;       //used at loading time, so maching field offsets (unions/members) are positioned at the same runtime offset.
-       char *          name;
-} fdef_t;
-
-typedef void *ddefXX_t;
-#else
-typedef struct QCC_ddef16_s
-{
-       unsigned short  type;           // if DEF_SAVEGLOBAL bit is set
-                                                               // the variable needs to be saved in savegames
-       unsigned short  ofs;
-       QCC_string_t            s_name;
-} QCC_ddef16_t;
-
-typedef struct QCC_ddef32_s
-{
-       unsigned int    type;           // if DEF_SAVEGLOBAL bit is set
-                                                               // the variable needs to be saved in savegames
-       unsigned int    ofs;
-       QCC_string_t            s_name;
-} QCC_ddef32_t;
-
-#define QCC_ddef_t QCC_ddef32_t
-#endif
-
-#define        DEF_SAVEGLOBAL          (1<<15)
-#define        DEF_SHARED              (1<<14)
-
-#ifndef COMPILER
-typedef struct
-{
-       int             first_statement;        // negative numbers are builtins
-       int             parm_start;
-       int             locals;                         // total ints of parms + locals
-       
-       int             profile;                // runtime
-       
-       string_t        s_name;
-       string_t        s_file;                 // source file defined in
-       
-       int             numparms;
-       qbyte   parm_size[MAX_PARMS];
-} dfunction_t;
-#else
-typedef struct
-{
-       unsigned int            first_statement;        // negative numbers are builtins
-       unsigned int            parm_start;
-       int             locals;                         // total ints of parms + locals
-       
-       int             profile;                // runtime
-       
-       QCC_string_t    s_name;
-       QCC_string_t    s_file;                 // source file defined in
-       
-       int             numparms;
-       qbyte   parm_size[MAX_PARMS];
-} QCC_dfunction_t;
-#endif
-
-#define PROG_QTESTVERSION      3
-#define        PROG_VERSION    6
-#define PROG_KKQWSVVERSION 7
-#define        PROG_EXTENDEDVERSION    7
-#define PROG_SECONDARYVERSION16 (*(int*)"1FTE" ^ *(int*)"PROG")        //something unlikly and still meaningful (to me)
-#define PROG_SECONDARYVERSION32 (*(int*)"1FTE" ^ *(int*)"32B ")        //something unlikly and still meaningful (to me)
-typedef struct
-{
-       int             version;
-       int             crc;                    // check of header file
-       
-       unsigned int            ofs_statements; //comp 1
-       unsigned int            numstatements;  // statement 0 is an error
-
-       unsigned int            ofs_globaldefs; //comp 2
-       unsigned int            numglobaldefs;
-       
-       unsigned int            ofs_fielddefs;  //comp 4
-       unsigned int            numfielddefs;
-       
-       unsigned int            ofs_functions;  //comp 8
-       unsigned int            numfunctions;   // function 0 is an empty
-       
-       unsigned int            ofs_strings;    //comp 16
-       unsigned int            numstrings;             // first string is a null string
-
-       unsigned int            ofs_globals;    //comp 32
-       unsigned int            numglobals;
-       
-       unsigned int            entityfields;
-
-       //debug / version 7 extensions
-       unsigned int            ofsfiles;       //non list format. no comp
-       unsigned int            ofslinenums;    //numstatements big     //comp 64
-       unsigned int            ofsbodylessfuncs;       //no comp
-       unsigned int            numbodylessfuncs;
-
-       unsigned int    ofs_types;      //comp 128
-       unsigned int    numtypes;
-       unsigned int    blockscompressed;
-
-       int     secondaryversion;       //Constant - to say that any version 7 progs are actually ours, not someone else's alterations.
-} dprograms_t;
-#define standard_dprograms_t_size ((size_t)&((dprograms_t*)NULL)->ofsfiles)
-
-#endif
-
-
-
-
-
-typedef struct {
-       char filename[128];
-       int size;
-       int compsize;
-       int compmethod;
-       int ofs;
-} includeddatafile_t;
-
-
-
-
-typedef struct typeinfo_s
-{
-       etype_t type;
-
-       int             next;
-       int             aux_type;
-       int             num_parms;
-
-       int             ofs;    //inside a structure.
-       int             size;
-       string_t        name;
-} typeinfo_t;
diff --git a/misc/source/fteqcc-src/pr_edict.c b/misc/source/fteqcc-src/pr_edict.c
deleted file mode 100644 (file)
index 292e764..0000000
+++ /dev/null
@@ -1,3172 +0,0 @@
-
-
-#define PROGSUSED
-struct edict_s;
-#include "progsint.h"
-//#include "crc.h"
-
-#ifdef _WIN32
-//this is windows  all files are written with this endian standard. we do this to try to get a little more speed.
-#define NOENDIAN
-#endif
-
-
-vec3_t vec3_origin;
-
-fdef_t *ED_FieldAtOfs (progfuncs_t *progfuncs, unsigned int ofs);
-pbool  ED_ParseEpair (progfuncs_t *progfuncs, int qcptr, unsigned int fldofs, int fldtype, char *s);
-
-/*
-=================
-QC_ClearEdict
-
-Sets everything to NULL
-=================
-*/
-void QC_ClearEdict (progfuncs_t *progfuncs, struct edict_s *ed)
-{
-       edictrun_t *e = (edictrun_t *)ed;
-       int num = e->entnum;
-       memset (e->fields, 0, fields_size);
-       e->isfree = false;
-       e->entnum = num;
-}
-
-edictrun_t *ED_AllocIntoTable (progfuncs_t *progfuncs, int num)
-{
-       edictrun_t *e;
-
-       prinst->edicttable[num] = *(struct edict_s **)&e = (void*)memalloc(externs->edictsize);
-       memset(e, 0, externs->edictsize);
-       e->fields = PRAddressableExtend(progfuncs, fields_size);
-       e->entnum = num;
-       QC_ClearEdict(progfuncs, (struct edict_s*)e);
-
-       return e;
-}
-
-/*
-=================
-ED_Alloc
-
-Either finds a free edict, or allocates a new one.
-Try to avoid reusing an entity that was recently freed, because it
-can cause the client to think the entity morphed into something else
-instead of being removed and recreated, which can cause interpolated
-angles and bad trails.
-=================
-*/
-struct edict_s *ED_Alloc (progfuncs_t *progfuncs)
-{
-       unsigned int                    i;
-       edictrun_t              *e;
-
-       for ( i=0 ; i<sv_num_edicts ; i++)
-       {
-               e = (edictrun_t*)EDICT_NUM(progfuncs, i);
-               // the first couple seconds of server time can involve a lot of
-               // freeing and allocating, so relax the replacement policy
-               if (!e || (e->isfree && ( e->freetime < 2 || *externs->gametime - e->freetime > 0.5 ) ))
-               {
-                       if (!e)
-                               e = ED_AllocIntoTable(progfuncs, i);
-                       else
-                               QC_ClearEdict (progfuncs, (struct edict_s*)e);
-
-                       if (externs->entspawn)
-                               externs->entspawn((struct edict_s *) e, false);
-                       return (struct edict_s *)e;
-               }
-       }
-
-       if (i >= maxedicts-1)   //try again, but use timed out ents.
-       {
-               for ( i=0 ; i<sv_num_edicts ; i++)
-               {
-                       e = (edictrun_t*)EDICT_NUM(progfuncs, i);
-                       // the first couple seconds of server time can involve a lot of
-                       // freeing and allocating, so relax the replacement policy
-                       if (!e || (e->isfree))
-                       {
-                               if (!e)
-                                       e = ED_AllocIntoTable(progfuncs, i);
-                               else
-                                       QC_ClearEdict (progfuncs, (struct edict_s*)e);
-
-                               if (externs->entspawn)
-                                       externs->entspawn((struct edict_s *) e, false);
-                               return (struct edict_s *)e;
-                       }
-               }
-
-               if (i >= maxedicts-2)
-               {
-                       printf("Running out of edicts\n");
-                       pr_trace = 1;   //trip the debugger whilst it's still valid
-               }
-               if (i >= maxedicts-1)
-               {
-                       int size;
-                       char *buf;
-                       buf = progfuncs->save_ents(progfuncs, NULL, &size, 0);
-                       progfuncs->parms->WriteFile("edalloc.dump", buf, size);
-                       Sys_Error ("ED_Alloc: no free edicts");
-               }
-       }
-
-       sv_num_edicts++;
-       e = (edictrun_t*)EDICT_NUM(progfuncs, i);
-
-       if (!e)
-               e = ED_AllocIntoTable(progfuncs, i);
-       else
-               QC_ClearEdict (progfuncs, (struct edict_s*)e);
-
-       if (externs->entspawn)
-               externs->entspawn((struct edict_s *) e, false);
-
-       return (struct edict_s *)e;
-}
-
-/*
-=================
-ED_Free
-
-Marks the edict as free
-FIXME: walk all entities and NULL out references to this entity
-=================
-*/
-void ED_Free (progfuncs_t *progfuncs, struct edict_s *ed)
-{
-       edictrun_t *e = (edictrun_t *)ed;
-//     SV_UnlinkEdict (ed);            // unlink from world bsp
-
-       if (e->isfree)  //this happens on start.bsp where an onlyregistered trigger killtargets itself (when all of this sort die after 1 trigger anyway).
-       {
-               if (pr_depth)
-                       printf("Tried to free free entity within %s\n", pr_xfunction->s_name+progfuncs->stringtable);
-               else
-                       printf("Engine tried to free free entity\n");
-//             if (developer.value == 1)
-//                     pr_trace = true;
-               return;
-       }
-
-       if (externs->entcanfree)
-               if (!externs->entcanfree(ed))   //can stop an ent from being freed.
-                       return;
-
-       e->isfree = true;
-       e->freetime = (float)*externs->gametime;
-
-/*
-       ed->v.model = 0;
-       ed->v.takedamage = 0;
-       ed->v.modelindex = 0;
-       ed->v.colormap = 0;
-       ed->v.skin = 0;
-       ed->v.frame = 0;
-       VectorCopy (vec3_origin, ed->v.origin);
-       VectorCopy (vec3_origin, ed->v.angles);
-       ed->v.nextthink = -1;
-       ed->v.solid = 0;
-*/
-}
-
-//===========================================================================
-
-/*
-============
-ED_GlobalAtOfs
-============
-*/
-ddef16_t *ED_GlobalAtOfs16 (progfuncs_t *progfuncs, int ofs)
-{
-       ddef16_t                *def;
-       unsigned int                    i;
-
-       for (i=0 ; i<pr_progs->numglobaldefs ; i++)
-       {
-               def = &pr_globaldefs16[i];
-               if (def->ofs == ofs)
-                       return def;
-       }
-       return NULL;
-}
-ddef32_t *ED_GlobalAtOfs32 (progfuncs_t *progfuncs, unsigned int ofs)
-{
-       ddef32_t                *def;
-       unsigned int                    i;
-
-       for (i=0 ; i<pr_progs->numglobaldefs ; i++)
-       {
-               def = &pr_globaldefs32[i];
-               if (def->ofs == ofs)
-                       return def;
-       }
-       return NULL;
-}
-
-/*
-============
-ED_FieldAtOfs
-============
-*/
-fdef_t *ED_FieldAtOfs (progfuncs_t *progfuncs, unsigned int ofs)
-{
-//     ddef_t          *def;
-       unsigned int                    i;
-
-       for (i=0 ; i<numfields ; i++)
-       {
-               if (field[i].ofs == ofs)
-                       return &field[i];
-       }
-       return NULL;
-}
-/*
-============
-ED_FindField
-============
-*/
-fdef_t *ED_FindField (progfuncs_t *progfuncs, char *name)
-{
-       unsigned int                    i;
-
-       for (i=0 ; i<numfields ; i++)
-       {
-               if (!strcmp(field[i].name, name) )
-                       return &field[i];
-       }
-       return NULL;
-}
-
-
-/*
-============
-ED_FindGlobal
-============
-*/
-ddef16_t *ED_FindGlobal16 (progfuncs_t *progfuncs, char *name)
-{
-       ddef16_t                *def;
-       unsigned int                    i;
-
-       for (i=1 ; i<pr_progs->numglobaldefs ; i++)
-       {
-               def = &pr_globaldefs16[i];
-               if (!strcmp(def->s_name+progfuncs->stringtable,name) )
-                       return def;
-       }
-       return NULL;
-}
-ddef32_t *ED_FindGlobal32 (progfuncs_t *progfuncs, char *name)
-{
-       ddef32_t                *def;
-       unsigned int                    i;
-
-       for (i=1 ; i<pr_progs->numglobaldefs ; i++)
-       {
-               def = &pr_globaldefs32[i];
-               if (!strcmp(def->s_name+progfuncs->stringtable,name) )
-                       return def;
-       }
-       return NULL;
-}
-
-unsigned int ED_FindGlobalOfs (progfuncs_t *progfuncs, char *name)
-{
-       ddef16_t *d16;
-       ddef32_t *d32;
-       switch(current_progstate->structtype)
-       {
-       case PST_KKQWSV:
-       case PST_DEFAULT:
-               d16 = ED_FindGlobal16(progfuncs, name);
-               return d16?d16->ofs:0;
-       case PST_QTEST:
-       case PST_FTE32:
-               d32 = ED_FindGlobal32(progfuncs, name);
-               return d32?d32->ofs:0;
-       }
-       Sys_Error("ED_FindGlobalOfs - bad struct type");
-       return 0;
-}
-
-ddef16_t *ED_FindGlobalFromProgs16 (progfuncs_t *progfuncs, char *name, progsnum_t prnum)
-{
-       ddef16_t                *def;
-       unsigned int                    i;
-
-       for (i=1 ; i<pr_progstate[prnum].progs->numglobaldefs ; i++)
-       {
-               def = &pr_progstate[prnum].globaldefs16[i];
-               if (!strcmp(def->s_name+progfuncs->stringtable,name) )
-                       return def;
-       }
-       return NULL;
-}
-ddef32_t *ED_FindGlobalFromProgs32 (progfuncs_t *progfuncs, char *name, progsnum_t prnum)
-{
-       ddef32_t                *def;
-       unsigned int                    i;
-
-       for (i=1 ; i<pr_progstate[prnum].progs->numglobaldefs ; i++)
-       {
-               def = &pr_progstate[prnum].globaldefs32[i];
-               if (!strcmp(def->s_name+progfuncs->stringtable,name) )
-                       return def;
-       }
-       return NULL;
-}
-
-ddef16_t *ED_FindTypeGlobalFromProgs16 (progfuncs_t *progfuncs, char *name, progsnum_t prnum, int type)
-{
-       ddef16_t                *def;
-       unsigned int                    i;
-
-       for (i=1 ; i<pr_progstate[prnum].progs->numglobaldefs ; i++)
-       {
-               def = &pr_progstate[prnum].globaldefs16[i];
-               if (!strcmp(def->s_name+progfuncs->stringtable,name) )
-               {
-                       if (pr_progstate[prnum].types)
-                       {
-                               if (pr_progstate[prnum].types[def->type&~DEF_SAVEGLOBAL].type != type)
-                                       continue;
-                       }
-                       else if ((def->type&(~DEF_SAVEGLOBAL)) != type)
-                               continue;
-                       return def;
-               }
-       }
-       return NULL;
-}
-
-
-ddef32_t *ED_FindTypeGlobalFromProgs32 (progfuncs_t *progfuncs, char *name, progsnum_t prnum, int type)
-{
-       ddef32_t                *def;
-       unsigned int                    i;
-
-       for (i=1 ; i<pr_progstate[prnum].progs->numglobaldefs ; i++)
-       {
-               def = &pr_progstate[prnum].globaldefs32[i];
-               if (!strcmp(def->s_name+progfuncs->stringtable,name) )
-               {
-                       if (pr_progstate[prnum].types)
-                       {
-                               if (pr_progstate[prnum].types[def->type&~DEF_SAVEGLOBAL].type != type)
-                                       continue;
-                       }
-                       else if ((def->type&(~DEF_SAVEGLOBAL)) != (unsigned)type)
-                               continue;
-                       return def;
-               }
-       }
-       return NULL;
-}
-
-unsigned int *ED_FindGlobalOfsFromProgs (progfuncs_t *progfuncs, char *name, progsnum_t prnum, int type)
-{
-       ddef16_t                *def16;
-       ddef32_t                *def32;
-       static unsigned int pos;
-       switch(pr_progstate[prnum].structtype)
-       {
-       case PST_DEFAULT:
-       case PST_KKQWSV:
-               def16 = ED_FindTypeGlobalFromProgs16(progfuncs, name, prnum, type);
-               if (!def16)
-                       return NULL;
-               pos = def16->ofs;
-               return &pos;
-       case PST_QTEST:
-       case PST_FTE32:
-               def32 = ED_FindTypeGlobalFromProgs32(progfuncs, name, prnum, type);
-               if (!def32)
-                       return NULL;
-               return &def32->ofs;
-       }
-       Sys_Error("ED_FindGlobalOfsFromProgs - bad struct type");
-       return 0;
-}
-
-/*
-============
-ED_FindFunction
-============
-*/
-dfunction_t *ED_FindFunction (progfuncs_t *progfuncs, char *name, progsnum_t *prnum, progsnum_t fromprogs)
-{
-       dfunction_t             *func;
-       unsigned int                            i;
-       char *sep;
-
-       progsnum_t pnum;
-
-       if (prnum)
-       {
-               sep = strchr(name, ':');
-               if (sep)
-               {
-                       pnum = atoi(name);
-                       name = sep+1;
-               }
-               else
-               {
-                       if (fromprogs>=0)
-                               pnum = fromprogs;
-                       else
-                               pnum = pr_typecurrent;
-               }
-               *prnum = pnum;
-       }
-       else
-               pnum = pr_typecurrent;
-
-       if ((unsigned)pnum > (unsigned)maxprogs)
-       {
-               printf("Progsnum %i out of bounds\n", pnum);
-               return NULL;
-       }
-
-       if (!pr_progstate[pnum].progs)
-               return NULL;
-
-       for (i=1 ; i<pr_progstate[pnum].progs->numfunctions ; i++)
-       {
-               func = &pr_progstate[pnum].functions[i];
-               if (!strcmp(func->s_name+progfuncs->stringtable,name) )
-                       return func;
-       }
-       return NULL;
-}
-
-/*
-============
-PR_ValueString
-
-Returns a string describing *data in a type specific manner
-=============
-*/
-char *PR_ValueString (progfuncs_t *progfuncs, etype_t type, eval_t *val)
-{
-       static char     line[256];
-       fdef_t                  *fielddef;
-       dfunction_t     *f;
-
-#ifdef DEF_SAVEGLOBAL
-       type &= ~DEF_SAVEGLOBAL;
-#endif
-
-       if (current_progstate && pr_types)
-               type = pr_types[type].type;
-
-       switch (type)
-       {
-       case ev_struct:
-               sprintf (line, "struct");
-               break;
-       case ev_union:
-               sprintf (line, "union");
-               break;
-       case ev_string:
-               sprintf (line, "%s", PR_StringToNative(progfuncs, val->string));
-               break;
-       case ev_entity:
-               fielddef = ED_FindField(progfuncs, "classname");
-               if (fielddef && val->edict < sv_num_edicts)
-               {
-                       edictrun_t *ed;
-                       string_t *v;
-                       ed = (edictrun_t *)EDICT_NUM(progfuncs, val->edict);
-                       v = (string_t *)((char *)edvars(ed) + fielddef->ofs*4);
-                       sprintf (line, "entity %i(%s)", val->edict, PR_StringToNative(progfuncs, *v));
-               }
-               else
-                       sprintf (line, "entity %i", val->edict);
-               break;
-       case ev_function:
-               if (!val->function)
-                       sprintf (line, "NULL function");
-               else
-               {
-                       if ((val->function & 0xff000000)>>24 >= (unsigned)maxprogs || !pr_progstate[(val->function & 0xff000000)>>24].functions)
-                               sprintf (line, "Bad function");
-                       else
-                       {
-                               if ((val->function &~0xff000000) >= pr_progs->numfunctions)
-                                       sprintf(line, "bad function %i:%i\n", (val->function & 0xff000000)>>24, val->function & ~0xff000000);
-                               else
-                               {
-                                       f = pr_progstate[(val->function & 0xff000000)>>24].functions + (val->function & ~0xff000000);
-                                       sprintf (line, "%i:%s()", (val->function & 0xff000000)>>24, f->s_name+progfuncs->stringtable);
-                               }
-                       }
-               }
-               break;
-       case ev_field:
-               fielddef = ED_FieldAtOfs (progfuncs,  val->_int );
-               if (!fielddef)
-                       sprintf (line, ".??? (%i)", val->_int);
-               else
-                       sprintf (line, ".%s (%i)", fielddef->name, val->_int);
-               break;
-       case ev_void:
-               sprintf (line, "void type");
-               break;
-       case ev_float:
-               sprintf (line, "%5.1f", val->_float);
-               break;
-       case ev_integer:
-               sprintf (line, "%i", val->_int);
-               break;
-       case ev_vector:
-               sprintf (line, "'%5.1f %5.1f %5.1f'", val->_vector[0], val->_vector[1], val->_vector[2]);
-               break;
-       case ev_pointer:
-               sprintf (line, "pointer");
-               {
-//                     int entnum;
-//                     int valofs;
-                       if (val->_int == 0)
-                       {
-                               sprintf (line, "NULL pointer");
-                               break;
-                       }
-               //FIXME: :/
-                       sprintf(line, "UNKNOWN");
-//                     entnum = ((qbyte *)val->edict - (qbyte *)sv_edicts) / pr_edict_size;
-//                     valofs = (int *)val->edict - (int *)edvars(EDICT_NUM(progfuncs, entnum));
-//                     fielddef = ED_FieldAtOfs (progfuncs, valofs );
-//                     if (!fielddef)
-//                             sprintf(line, "ent%i.%s", entnum, "UNKNOWN");
-//                     else
-//                             sprintf(line, "ent%i.%s", entnum, fielddef->s_name);
-               }
-               break;
-       default:
-               sprintf (line, "bad type %i", type);
-               break;
-       }
-
-       return line;
-}
-
-/*
-============
-PR_UglyValueString
-
-Returns a string describing *data in a type specific manner
-Easier to parse than PR_ValueString
-=============
-*/
-char *PR_UglyValueString (progfuncs_t *progfuncs, etype_t type, eval_t *val)
-{
-       static char     line[256];
-       fdef_t          *fielddef;
-       dfunction_t     *f;
-       int i, j;
-
-#ifdef DEF_SAVEGLOBAL
-       type &= ~DEF_SAVEGLOBAL;
-#endif
-
-//     if (pr_types)
-//             type = pr_types[type].type;
-
-       switch (type)
-       {
-       case ev_struct:
-               sprintf (line, "structures cannot yet be saved");
-               break;
-       case ev_union:
-               sprintf (line, "unions cannot yet be saved");
-               break;
-       case ev_string:
-               {
-                       char *outs = line;
-                       int outb = sizeof(line)-2;
-                       char *ins = PR_StringToNative(progfuncs, val->string);
-                       //markup the output string.
-                       while(*ins && outb > 0)
-                       {
-                               switch(*ins)
-                               {
-                               case '\n':
-                                       *outs++ = '\\';
-                                       *outs++ = 'n';
-                                       ins++;
-                                       outb-=2;
-                                       break;
-                               case '\"':
-                                       *outs++ = '\\';
-                                       *outs++ = '"';
-                                       ins++;
-                                       outb-=2;
-                                       break;
-                               case '\\':
-                                       *outs++ = '\\';
-                                       *outs++ = '\\';
-                                       ins++;
-                                       outb-=2;
-                                       break;
-                               default:
-                                       *outs++ = *ins++;
-                                       outb--;
-                                       break;
-                               }
-                       }
-                       *outs = 0;
-               }
-               break;
-       case ev_entity:
-               sprintf (line, "%i", val->_int);
-               break;
-       case ev_function:
-               i = (val->function & 0xff000000)>>24;   //progs number
-               if ((unsigned)i >= maxprogs || !pr_progstate[(unsigned)i].progs)
-                       sprintf (line, "BAD FUNCTION INDEX: %i", val->function);
-               else
-               {
-                       j = (val->function & ~0xff000000);      //function number
-                       if ((unsigned)j >= pr_progstate[(unsigned)i].progs->numfunctions)
-                               sprintf(line, "%i:%s", i, "CORRUPT FUNCTION POINTER");
-                       else
-                       {
-                               f = pr_progstate[(unsigned)i].functions + j;
-                               sprintf (line, "%i:%s", i, f->s_name+progfuncs->stringtable);
-                       }
-               }
-               break;
-       case ev_field:
-               fielddef = ED_FieldAtOfs (progfuncs, val->_int );
-               sprintf (line, "%s", fielddef->name);
-               break;
-       case ev_void:
-               sprintf (line, "void");
-               break;
-       case ev_float:
-               if (val->_float == (int)val->_float)
-                       sprintf (line, "%i", (int)val->_float); //an attempt to cut down on the number of .000000 vars..
-               else
-                       sprintf (line, "%f", val->_float);
-               break;
-       case ev_integer:
-               sprintf (line, "%i", val->_int);
-               break;
-       case ev_vector:
-               if (val->_vector[0] == (int)val->_vector[0] && val->_vector[1] == (int)val->_vector[1] && val->_vector[2] == (int)val->_vector[2])
-                       sprintf (line, "%i %i %i", (int)val->_vector[0], (int)val->_vector[1], (int)val->_vector[2]);
-               else
-                       sprintf (line, "%f %f %f", val->_vector[0], val->_vector[1], val->_vector[2]);
-               break;
-       default:
-               sprintf (line, "bad type %i", type);
-               break;
-       }
-
-       return line;
-}
-
-//compatible with Q1 (for savegames)
-char *PR_UglyOldValueString (progfuncs_t *progfuncs, etype_t type, eval_t *val)
-{
-       static char     line[256];
-       fdef_t          *fielddef;
-       dfunction_t     *f;
-
-#ifdef DEF_SAVEGLOBAL
-       type &= ~DEF_SAVEGLOBAL;
-#endif
-
-       if (pr_types)
-               type = pr_types[type].type;
-
-       switch (type)
-       {
-       case ev_struct:
-               sprintf (line, "structures cannot yet be saved");
-               break;
-       case ev_union:
-               sprintf (line, "unions cannot yet be saved");
-               break;
-       case ev_string:
-               sprintf (line, "%s", PR_StringToNative(progfuncs, val->string));
-               break;
-       case ev_entity:
-               sprintf (line, "%i", NUM_FOR_EDICT(progfuncs, (struct edict_s *)PROG_TO_EDICT(progfuncs, val->edict)));
-               break;
-       case ev_function:
-               f = pr_progstate[(val->function & 0xff000000)>>24].functions + (val->function & ~0xff000000);
-               sprintf (line, "%s", f->s_name+progfuncs->stringtable);
-               break;
-       case ev_field:
-               fielddef = ED_FieldAtOfs (progfuncs, val->_int );
-               sprintf (line, "%s", fielddef->name);
-               break;
-       case ev_void:
-               sprintf (line, "void");
-               break;
-       case ev_float:
-               if (val->_float == (int)val->_float)
-                       sprintf (line, "%i", (int)val->_float); //an attempt to cut down on the number of .000000 vars..
-               else
-                       sprintf (line, "%f", val->_float);
-               break;
-       case ev_integer:
-               sprintf (line, "%i", val->_int);
-               break;
-       case ev_vector:
-               if (val->_vector[0] == (int)val->_vector[0] && val->_vector[1] == (int)val->_vector[1] && val->_vector[2] == (int)val->_vector[2])
-                       sprintf (line, "%i %i %i", (int)val->_vector[0], (int)val->_vector[1], (int)val->_vector[2]);
-               else
-                       sprintf (line, "%f %f %f", val->_vector[0], val->_vector[1], val->_vector[2]);
-               break;
-               break;
-       default:
-               sprintf (line, "bad type %i", type);
-               break;
-       }
-
-       return line;
-}
-
-char *PR_TypeString(progfuncs_t *progfuncs, etype_t type)
-{
-#ifdef DEF_SAVEGLOBAL
-       type &= ~DEF_SAVEGLOBAL;
-#endif
-
-       if (pr_types)
-               type = pr_types[type].type;
-
-       switch (type)
-       {
-       case ev_struct:
-               return "struct";
-       case ev_union:
-               return "union";
-       case ev_string:
-               return "string";
-       case ev_entity:
-               return "entity";
-       case ev_function:
-               return "function";
-       case ev_field:
-               return "field";
-       case ev_void:
-               return "void";
-       case ev_float:
-               return "float";
-       case ev_vector:
-               return "vector";
-       case ev_integer:
-               return "integer";
-       default:
-               return "BAD TYPE";
-       }
-}
-
-/*
-============
-PR_GlobalString
-
-Returns a string with a description and the contents of a global,
-padded to 20 field width
-============
-*/
-char *PR_GlobalString (progfuncs_t *progfuncs, int ofs)
-{
-       char    *s;
-       int             i;
-       ddef16_t        *def16;
-       ddef32_t        *def32;
-       void    *val;
-       static char     line[128];
-
-       switch (current_progstate->structtype)
-       {
-       case PST_DEFAULT:
-       case PST_KKQWSV:
-               val = (void *)&pr_globals[ofs];
-               def16 = ED_GlobalAtOfs16(progfuncs, ofs);
-               if (!def16)
-                       sprintf (line,"%i(?""?""?)", ofs);
-               else
-               {
-                       s = PR_ValueString (progfuncs, def16->type, val);
-                       sprintf (line,"%i(%s)%s", ofs, def16->s_name+progfuncs->stringtable, s);
-               }
-
-               i = strlen(line);
-               for ( ; i<20 ; i++)
-                       strcat (line," ");
-               strcat (line," ");
-               return line;
-       case PST_QTEST:
-       case PST_FTE32:
-               val = (void *)&pr_globals[ofs];
-               def32 = ED_GlobalAtOfs32(progfuncs, ofs);
-               if (!def32)
-                       sprintf (line,"%i(?""?""?)", ofs);
-               else
-               {
-                       s = PR_ValueString (progfuncs, def32->type, val);
-                       sprintf (line,"%i(%s)%s", ofs, def32->s_name+progfuncs->stringtable, s);
-               }
-
-               i = strlen(line);
-               for ( ; i<20 ; i++)
-                       strcat (line," ");
-               strcat (line," ");
-               return line;
-       }
-       Sys_Error("Bad struct type in PR_GlobalString");
-       return "";
-}
-
-char *PR_GlobalStringNoContents (progfuncs_t *progfuncs, int ofs)
-{
-       int             i;
-       ddef16_t        *def16;
-       ddef32_t        *def32;
-       static char     line[128];
-
-       switch (current_progstate->structtype)
-       {
-       case PST_DEFAULT:
-       case PST_KKQWSV:
-               def16 = ED_GlobalAtOfs16(progfuncs, ofs);
-               if (!def16)
-                       sprintf (line,"%i(?""?""?)", ofs);
-               else
-                       sprintf (line,"%i(%s)", ofs, def16->s_name+progfuncs->stringtable);
-               break;
-       case PST_QTEST: