<div dir="ltr">I managed to fix the problems I hit by forward-declaring Frame and Palette16 in <a href="http://gfx.bi">gfx.bi</a>. I was too pessimistic before; I don't think we'll have much trouble in future, since <a href="http://udts.bi">udts.bi</a> is no longer included by any of the 'low level' modules like lumpfile.bas and reload.bas which are linked into utilities. And it's a separation between the medium level stuff (<a href="http://slices.bi">slices.bi</a>, <a href="http://common.bi">common.bi</a> and <a href="http://udt.bi">udt.bi</a>) and the high-level headers such as <a href="http://scriptcommands.bi">scriptcommands.bi</a> and <a href="http://menustuf.bi">menustuf.bi</a>.<br><br><div>A release build of unlump is 244KB (102KB zipped), and ohrrpgce-game is 2.6MB (886KB zipped). So linking all the common modules would actually add a lot of bloat (I didn't check how much). With unlump+relump combined it would increase download size about 1MB.<br><div class="gmail_extra"><br><div class="gmail_quote">On 2 January 2017 at 17:13, James Paige <span dir="ltr"><<a href="mailto:Bob@hamsterrepublic.com" target="_blank">Bob@hamsterrepublic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I have no problem at all with linking everything and the kitchen sink into the command line programs. Trying to keep them minimalist doesn't sound worth the effort. <br></div><div class="m_-5023823761065057447HOEnZb"><div class="m_-5023823761065057447h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 1, 2017 at 7:16 PM, Ralph Versteegen <span dir="ltr"><<a href="mailto:teeemcee@gmail.com" target="_blank">teeemcee@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>This is the perfect excuse to cleanup <a href="http://udts.bi" target="_blank">udts.bi</a>, moving definitions to <a href="http://allmodex.bi" target="_blank">allmodex.bi</a> or elsewhere!<br><br></div>(Some time later) Oh dear, this is near-hopeless. Our header files all have circular dependencies on things in other header files, and the utilities aren't linked against allmodex.bas, common.bas, or maybe other modules. If we want to add more constructors to other UDTs we'll get a lot more error messages like that. I think I can maybe work my way around the Animation ctor problem, but long term we might be forced to either use a bunch of #ifdefs in the header, or link everything into each commandline utility.<br><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-5023823761065057447m_-9014311206702964281h5">On 2 January 2017 at 05:52, James Paige <span dir="ltr"><<a href="mailto:Bob@hamsterrepublic.com" target="_blank">Bob@hamsterrepublic.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-5023823761065057447m_-9014311206702964281h5"><div dir="ltr">unlump and relump are currently not building, apparently something to do with ANIMATION::ANIMATION()<br><br>james@ghostorchid:~/Dropbox/sr<wbr>c/ohr/wip$ scons relump<br>scons: Reading SConscript files ...<br>Using target: linux  arch: x86  gcc: gcc  gcctarget: x86_64-linux-gnu  fbcversion: 1050<br>scons: done reading SConscript files.<br>scons: Building targets ...<br>fbc -c relump.bas -o build/relump.o -m relump -mt -exx -g -O 2 -target linux -arch 686<br>g++ -O3 -DFBCVERSION=1050 -m32 -mpreferred-stack-boundary=2 -mno-sse --std=c++0x -g -Wall -Wno-non-virtual-dtor -o relump build/relump.o build/lumpfile.o build/os_unix.o build/os_unix2.o build/util.o build/blit.o build/base64.o build/unicode.o build/array.o build/miscc.o build/filelayer.o build/vector.o build/common_base.o "-Wl,-(" -Wl,--add-needed -Wl,-L/usr/local/bin/../lib/fr<wbr>eebasic/linux-x86 /usr/local/bin/../lib/freebasi<wbr>c/linux-x86/fbrt0.o -lfbmt linux/fb_icon.c -lncurses -lpthread "-Wl,-)"<br>build/lumpfile.o: In function `SPRITESET::operator=(SPRITESE<wbr>T const&)':<br>/home/james/Dropbox/src/ohr/wi<wbr>p/<a href="http://udts.bi:153" target="_blank">udts.bi:153</a>: undefined reference to `ANIMATION::ANIMATION()'<br>collect2: error: ld returned 1 exit status<br>scons: *** [relump] Error 1<br>scons: building terminated because of errors.<br><br></div>
<br></div></div>______________________________<wbr>_________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.o<wbr>rg</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org<wbr>/listinfo.cgi/ohrrpgce-motherh<wbr>amster.org</a><br>
<br></blockquote></div><br></div></div>
<br>______________________________<wbr>_________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.o<wbr>rg</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org<wbr>/listinfo.cgi/ohrrpgce-motherh<wbr>amster.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.o<wbr>rg</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org<wbr>/listinfo.cgi/ohrrpgce-motherh<wbr>amster.org</a><br>
<br></blockquote></div><br></div></div></div>