void OPacket::WriteSize(const bool encrypted) { WritePosition(ENTRY_SIZE_POSITION); uint16_t size = m_size - 6; if(encrypted) size |= 0x8000; Write<uint16_t>(size,false); WritePosition(m_size); }
double evalBinary (tOperator op, double left, double right, tPosition pos) /* compute "left op right" */ { switch (op) { case op_minus: return left-right; case op_plus: return left+right; case op_mult: return left*right; case op_div: if (right == 0.0) { WritePosition (stderr, pos); fprintf (stderr, " division bright zero\n"); return 0.0; } else { return left/right; } case op_pow: return pow (left,right); case op_lt: return left < right; case op_le: return left <= right; case op_gt: return left > right; case op_ge: return left >= right; case op_eq: return left == right; case op_ne: return left != right; case op_and: return left && right; case op_or: return left || right; default: FATAL_ERROR(); } }
void OPacket::Write(const char * str,const uint16_t len) { uint8_t* stream = (uint8_t*)m_wpos; strcpy((char*)stream, str); m_size += (uint16_t)len; WritePosition(m_size); }
int main (int argc, char *argv[]) { int Token, Count = 0; if (argc == 2) { if (strcmp (argv[1], "-h") == 0) { fprintf (stderr, "usage: scan [-h] [file]\n" " simple scanner, reads `file' or stdin\n" " -h: Help\n"); exit (0); } l_scan_BeginFile (argv[1]); /* Read from file argv[1]. * If this routine is not called, stdin is read. */ } for (Token = l_scan_GetToken (); Token != l_scan_EofToken; Token = l_scan_GetToken ()) { Count ++; WritePosition (stdout, l_scan_Attribute.Position); printf (" "); switch (Token) { case tok_app_name_const: printf ("app_name_const : %s\n",l_scan_Attribute.int_const.Value); break; case tok_string_const: printf ("string_const : %s\n",l_scan_Attribute.int_const.Value); break; case tok_int_const: printf ("int_const : %s\n",l_scan_Attribute.int_const.Value); break; case tok_float_const: printf ("float_const : %s\n",l_scan_Attribute.int_const.Value); break; case tok_bez: printf ("bez : %s\n",l_scan_Attribute.int_const.Value); break; case tok_op: printf ("op : %s\n",l_scan_Attribute.int_const.Value); break; case tok_kla_auf: printf ("kla_auf : %s\n",l_scan_Attribute.int_const.Value); break; case tok_kla_zu: printf ("kla_zu : %s\n",l_scan_Attribute.int_const.Value); break; case tok_zuw: printf ("zuw : %s\n",l_scan_Attribute.int_const.Value); break; case tok_int_key: printf ("int_key : %s\n",l_scan_Attribute.int_const.Value); break; /* add code to emit your tokens here */ default: fprintf (stderr, "FATAL ERROR, unknown token\n"); } } printf ("Token count: %d\n", Count); return 0; }
void MessagePrintingWindowArea::resetPrintedText() { delete printedText_; printedText_ = gameMemory_ .graphicsCore().createDrawableSurface(parentWindow_->contentW() - paddingLeft_, parentWindow_->contentH() - paddingTop_); writePosition_ = WritePosition(0, gameMemory_.fontCore().getLineHeight(font_, fontSize_)); }
int CMapFileIO::SaveBackground(const CBackground& Back, XML_MANAGER_HANDLE xml, XML_NODE_HANDLE hRoot) const { XML_NODE_HANDLE group = AddNode(xml, hRoot, L"background"); if(!group) return 1; XML_NODE_HANDLE node = AddNode(xml, group, L"image"); SetNodeAttr(xml, node, L"file", Back.GetImagePath()); WritePosition(xml, group, Back.GetPosition()); ReleaseNode(node); ReleaseNode(group); return 0; }
int CMapFileIO::SavePlayer( const ICreature* pPlayer, XML_MANAGER_HANDLE xml, XML_NODE_HANDLE hRoot) const { XML_NODE_HANDLE node = AddNode(xml, hRoot, L"player"); if( !node ) return 1; if( pPlayer ) if( WritePosition( xml, node, pPlayer->GetPosition() ) ) return 1; ReleaseNode(node); return 0; }
int CMapFileIO::SaveTile(const CTile& Tile, XML_MANAGER_HANDLE xml, XML_NODE_HANDLE hRoot) const { XML_NODE_HANDLE node = AddNode(xml, hRoot, L"tile"); if(!node) return 1; SetNodeAttr(xml, node, L"type", Tile.GetTypeName()); if(WritePosition(xml, node, Tile.GetPosition())) return 1; std::wostringstream os; os << Tile.GetCurrentHP(); SetNodeAttr(xml, node, L"hp", os.str().c_str()); os.str(L""); ReleaseNode(node); return 0; }
void debug_stream_test_cb (puObject* obj) { SStream* s = new SStream; strncpy (s->filename, "teststream.txt",(PATH_MAX-1)); strncpy (s->mode, "w",3); OpenStream (s); WriteComment ("Comment...testing testing testing", s); WriteComment ("", s); WriteTag ('bgno', "---- object ----", s); WriteTag ('bgno', "---- nested Object ----", s); WriteTag ('int_', "---- int ----", s); int i = 500; WriteInt (&i, s); WriteTag ('uint', "---- unsigned int ----", s); unsigned int ui = 12345678; WriteUInt (&ui, s); float f = 12345.67f; WriteTag ('flot', "---- float ----", s); WriteFloat (&f, s); double d = 987654.3210; WriteTag ('dubl', "---- double ----", s); WriteDouble (&d, s); WriteTag ('stng', "---- string ----", s); WriteString ("This a string", s); SVector v; v.x = 1.0; v.y = 2.0; v.z = 3.0; WriteTag ('vect', "--- vector ----", s); WriteVector (&v, s); SPosition pos; pos.lat = 1000.0; pos.lon = 2000.0; pos.alt = 3000.0; WriteTag ('posn', "---- position ----", s); WritePosition (&pos, s); SMessage mesg; WriteTag ('mesg', "---- message ----", s); WriteMessage (&mesg, s); WriteTag ('endo', s); WriteTag ('endo', s); CloseStream (s); delete s; }
int CMapFileIO::SaveCreature( const ICreature* pCrt, XML_MANAGER_HANDLE xml, XML_NODE_HANDLE hRoot) const { XML_NODE_HANDLE sub; XML_NODE_HANDLE node = AddNode(xml, hRoot, L"Monster"); if(!node) return 1; SetNodeAttr(xml, node, L"type", pCrt->GetType()); SetNodeAttr(xml, node, L"name", pCrt->GetName()); SetNodeAttr(xml, node, L"source", m_pgetsrc((LPWSTR)pCrt->GetType(), (LPWSTR)pCrt->GetName())); sub = AddNode(xml, node, L"location"); if(!sub) return 1; if(WritePosition(xml, sub, pCrt->GetPosition())) return 1; ReleaseNode(sub); ReleaseNode(node); return 0; }
void OPacket::Clear() { memset(data, 0, MAX_PACKET_SIZE); WritePosition(6); m_size = 6; }
void OPacket::WriteCrcSecurity(const uint8_t security) { WritePosition(ENTRY_CRC_POSITION); Write<uint8_t>(security,false); WritePosition(m_size); }
void OPacket::WriteOpcode(const uint16_t opcode) { WritePosition(ENTRY_OPCODE_POSITION); Write<uint16_t>(opcode,false); WritePosition(m_size); }
HRESULT CXMLExporterBase::WriteOption(BSTR name, _variant_t value) { HRESULT hr; _bstr_t bName(name, true); switch( value.vt ) { case VT_I4: case VT_I2: Write("<Option name=\"%s\" value=\"%d\" />\n", (const char*)bName, (long)value); break; case VT_R4: case VT_R8: Write("<Option name=\"%s\" value=\"%g\" />\n", (const char*)bName, (double)value); break; case VT_BOOL: Write("<Option name=\"%s\" value=\"%s\" />\n", (const char*)bName, BoolToText((bool)value)); break; case VT_BSTR: { _bstr_t bValue = (_bstr_t) value.bstrVal; Write("<Option name=\"%s\" value=\"%s\" />\n", (const char*)bName, (const char*)bValue); } break; case VT_DATE: { #ifdef _WIN32 DATE time = (DATE)value; SYSTEMTIME sysTime; if( VariantTimeToSystemTime(time, &sysTime) ) { TCHAR dateStr[16], timeStr[16]; GetDateFormat(NULL, 0, &sysTime, _T("MM'/'dd'/'yyyy"), dateStr, 16); GetTimeFormat(NULL, 0, &sysTime, _T("HH':'mm':'ss"), timeStr, 16); Write("<Option name=\"%s\" value=\"%s %s\" />\n", (const char*)bName, dateStr, timeStr); } else { Write("<Option name=\"%s\" value=\"invalid time\" />\n", (const char*)bName); } #else // On the Mac, DATE == time_t DATE date = value.date; Write("<Option name=\"%s\" value=\"%s\" />\n", (const char*)bName, asctime(gmtime((time_t*)&date))); #endif } break; case VT_UNKNOWN: // The unknown can be either a point or a vector { IUnknown* pUnk = value.punkVal; ISkpPoint3d* pPoint = NULL; hr = pUnk->QueryInterface(IID_ISkpPoint3d, (void**)&pPoint); if( SUCCEEDED(hr) ) { double p[3]; pPoint->Get(p, p+1, p+2); WritePosition( (const char*)bName , p); RELEASE(pPoint); } else { ISkpVector3d* pVec = NULL; hr = pUnk->QueryInterface(IID_ISkpVector3d, (void**)&pVec); if( SUCCEEDED(hr) ) { double v[3]; pVec->Get(v,v+1,v+2); WriteVector( (const char*)bName , v); RELEASE(pVec); } } } break; default: Write("<Option name=\"%s\" value=\"unknown type\" />\n", (const char*)bName); } return S_OK; }