diff -r a8838b5f1213 -r c349dca807f9 objwriter.h --- a/objwriter.h Sun Jul 29 04:02:07 2012 +0300 +++ b/objwriter.h Sun Jul 29 16:55:32 2012 +0300 @@ -72,17 +72,29 @@ void WriteBuffers (); void WriteStringTable (); void WriteToFile (); + DataBuffer* GetCurrentBuffer (); + + unsigned int AddMark (int type, str name); + unsigned int FindMark (int type, str name); + unsigned int AddReference (unsigned int mark); template void Write (T stuff) { - DataBuffer* buffer = (g_CurMode == MODE_MAINLOOP) ? MainLoopBuffer : - (g_CurMode == MODE_ONENTER) ? OnEnterBuffer : - MainBuffer; + DataBuffer* buffer = GetCurrentBuffer (); buffer->Write (stuff); return; } // Cannot use default arguments in function templates.. void Write (word stuff) {Write (stuff);} + + template void WriteDataToFile (T stuff) { + // One byte at a time + for (unsigned int x = 0; x < sizeof (T); x++) { + unsigned char c = GetByteIndex (stuff, x); + fwrite (&c, 1, 1, fp); + numWrittenBytes++; + } + } }; #endif // __OBJWRITER_H__ \ No newline at end of file