Esempio n. 1
0
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);
}
Esempio n. 2
0
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();
  }
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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_));
}
Esempio n. 6
0
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;
}
Esempio n. 7
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;
}
Esempio n. 8
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;
}
Esempio n. 9
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;
}
Esempio n. 10
0
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;
}
Esempio n. 11
0
void OPacket::Clear()
{
    memset(data, 0, MAX_PACKET_SIZE);
	WritePosition(6);
	m_size = 6;
}
Esempio n. 12
0
void OPacket::WriteCrcSecurity(const uint8_t security)
{
	WritePosition(ENTRY_CRC_POSITION);
	Write<uint8_t>(security,false);
	WritePosition(m_size);
}
Esempio n. 13
0
void OPacket::WriteOpcode(const uint16_t opcode)
{
    WritePosition(ENTRY_OPCODE_POSITION);
    Write<uint16_t>(opcode,false);
    WritePosition(m_size);
}
Esempio n. 14
0
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;
}