Re: [Quake-C] Compile errors in FTE
Quake C mods and support - SSQC / CSQC
Brought to you by:
teknoskillz
From: <qu...@ca...> - 2016-10-12 04:06:27
|
Wow. Just from fixing the timeset compile issue, I find a bunch of compiler stuff that fte does different! On 2016-10-11 16:06, Cobalt wrote: > One of my side projects is getitng the Runequake src to compile with > FTE, > and its been a long hard road as it was originally using qxxc to do the > fancy compiling stuff thats all over this mod. Fte does have a -Fqccx > mode Really? I thought I was running the latest version: ] fteqcc -Fqccx warning: Unrecognised flag parameter (-Fqccx) > string timeset = "5\{0}":"10":"15":"20":"25":"30"; > string timeset_gold = "\5\{0}":"\1\0":"\1\5":"\2\0":"\2\5":"\3\0"; > > defs.qc:1636: warning: Missing semicolon at end of definition > defs.qc:1636: error: ":" is not a type > defs.qc:1637: warning: Missing semicolon at end of definition > defs.qc:1637: error: ":" is not a type > But Im not sure that is a legit fix? This depends entirely on how the compiler was setup to handle array / string. That is what it looks like anyway, as I used it before. I was using frikqcc and that is the string array format. I dumped that crap when I went to fte as it wasnt supported the same way. I make no promises...but try defs.qc: string timeset[5]; world.qc: // in worldspawn timeset[0] = "05"; timeset[1] = "10"; timeset[2] = "15"; timeset[3] = "20"; timeset[4] = "25"; timeset[5] = "30"; This compiles and may even work as intended. YMWV (note the W = will) However... They use %{n} as an array reference - I believe fte does not. > Runequake uses a makefile / .mk4 preprocessor system, seems like an old > Unix > language, but cant make heads or tails of it except it seems to let you > compile the src for > either Proquake (poq IN_POQ) or Quake World (qw / IN_QW). Would be > great if > we could figure out a DP mode , IE: IN_DP, and I guess thats my job . . > .. Yuk :)~ Once you get married to a compiler, unless you built the code with the express purpose of using other compilers, qc coder life can be most challenging. As for head.m4 - these are some variety of define macros... This is a lot like a function, but the compiler spits out code to compile. m4_define([-IN_POQ-], [-m4_ifdef([-POQ-], $@)-]) Some places in code I saw: create_te_explosion (self.origin, IN_POQ(1, 0)); So, if POQ is set: create_te_explosion (self.origin, 1); and if POQ is not set: create_te_explosion (self.origin, 0); If I understand this correctly, this was done to merge the qw and poq source trees, then define a value for the one you want to compile. If you really intend to rip out all the IN_* stuff, you will have to leave the correct code behind. You will still face all the other issues. Maybe pick either the qw or poq source and avoid the IN_ marcros? Good luck! Stop by and see my new game design: https://www.patreon.com/six_gaming |