Пример #1
0
/* ------------------------------------------------------------------------------------ */
int CLogic::SaveTo(FILE *SaveFD, bool type)
{
	geEntity_EntitySet *pSet;
	geEntity *pEntity;

	// Ok, check to see if there are  triggers in this world
	pSet = geWorld_GetEntitySet(CCD->World(), "LogicGate");

	if(!pSet)
		return RGF_SUCCESS;									// No gates, whatever...

	// Ok, we have logic gates somewhere.  Dig through 'em all.
	for(pEntity=geEntity_EntitySetGetNextEntity(pSet, NULL); pEntity;
	    pEntity=geEntity_EntitySetGetNextEntity(pSet, pEntity))
	{
		LogicGate *pSource = (LogicGate*)geEntity_GetUserData(pEntity);

		WRITEDATA(type, &pSource->active,	sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pSource->bState,	sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pSource->OldState,	sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pSource->inDelay,	sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pSource->time,		sizeof(float),		1, SaveFD);
	}

	return RGF_SUCCESS;
}
Пример #2
0
/* ------------------------------------------------------------------------------------ */
int CAutoDoors::SaveTo(FILE *SaveFD, bool type)
{
	geEntity_EntitySet *pSet;
	geEntity *pEntity;

	//	Ok, check to see if there are automatic doors in this world
	pSet = geWorld_GetEntitySet(CCD->World(), "Door");

	if(!pSet)
		return RGF_SUCCESS;									// No doors, whatever...

	//	Ok, we have doors somewhere.  Dig through 'em all.
	for(pEntity=geEntity_EntitySetGetNextEntity(pSet, NULL); pEntity;
		pEntity=geEntity_EntitySetGetNextEntity(pSet, pEntity))
	{
		Door *pDoor = (Door*)geEntity_GetUserData(pEntity);

		WRITEDATA(type, &pDoor->bInAnimation,	sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pDoor->bTrigger,		sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pDoor->AnimationTime,	sizeof(int),		1, SaveFD);
		WRITEDATA(type, &pDoor->bInCollision,	sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pDoor->bActive,		sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pDoor->LastIncrement,	sizeof(int),		1, SaveFD);
		WRITEDATA(type, &pDoor->tDoor,			sizeof(geFloat),	1, SaveFD);
		WRITEDATA(type, &pDoor->CallBack,		sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pDoor->CallBackCount,	sizeof(int),		1, SaveFD);
	}

	return RGF_SUCCESS;
}
/* ------------------------------------------------------------------------------------ */
int CPersistentAttributes::SaveTo(FILE *SaveFD, bool type)
{
	int nLen = 0;
	PersistAttribute *pAttr = theList;

	fwrite(&m_nCount, sizeof(int), 1, SaveFD);

	while(pAttr != NULL)
	{
		nLen = strlen(pAttr->Name) + 1;

		WRITEDATA(type, &nLen,						sizeof(int), 1, SaveFD);
		WRITEDATA(type, pAttr->Name,				1,		  nLen, SaveFD);
		WRITEDATA(type, &(pAttr->Count),			sizeof(int), 1, SaveFD);
		WRITEDATA(type, &(pAttr->Value),			sizeof(int), 1, SaveFD);
		WRITEDATA(type, &(pAttr->ValueLowLimit),	sizeof(int), 1, SaveFD);
		WRITEDATA(type, &(pAttr->ValueHighLimit),	sizeof(int), 1, SaveFD);
// changed QD 12/15/05
		WRITEDATA(type, &(pAttr->PowerUpLevel),		sizeof(int), 1, SaveFD);
// end change
		WRITEDATA(type, &(pAttr->UserDataSize),		sizeof(int), 1, SaveFD);

		if(pAttr->UserDataSize != 0)
			WRITEDATA(type, &(pAttr->UserData), 1, pAttr->UserDataSize, SaveFD);

		pAttr = pAttr->pNext;				// Next item
	}

	return RGF_SUCCESS;
}
Пример #4
0
int session_response(DbXmlSessionData* session, int res) {

  WRITEDATAVARS;
  // initialize session
  if (res) {
    WRITEDATA(session, "ACCESS DENIED\n", 14);
  } else {
    WRITEDATA(session, "SESSION STARTING\n", 17);
  }
  return res;
}
Пример #5
0
int send_session_options(DbXmlSessionData* session, DbXmlSessionOptions* options) {
  WRITEDATAVARS;
  int header_count = 0;
  while (header_count < MAX_HEADERS && options->headers[header_count] != NULL) {
    WRITEDATA(session,
              options->headers[header_count]->key,
              strlen(options->headers[header_count]->key));
    WRITEDATA(session, "=", 1);
    WRITEDATA(session,
              options->headers[header_count]->val,
              strlen(options->headers[header_count]->val));
    WRITEDATA(session, "\n", 1);
    header_count++;
  }
  WRITEDATA(session, "\n", 1);
  return 0;
}
/* ------------------------------------------------------------------------------------ */
int CChangeLevel::SaveTo(FILE *SaveFD, bool type)
{
	geEntity_EntitySet *pSet;
	geEntity *pEntity;

	//	Ok, check to see if there are ChangeLevel in this world
	pSet = geWorld_GetEntitySet(CCD->World(), "ChangeLevel");

	if(!pSet)
		return RGF_SUCCESS;									// No doors, whatever...

	//	Ok, we have doors somewhere.  Dig through 'em all.
	for(pEntity=geEntity_EntitySetGetNextEntity(pSet, NULL); pEntity;
		pEntity=geEntity_EntitySetGetNextEntity(pSet, pEntity))
	{
		ChangeLevel *pItem = (ChangeLevel*)geEntity_GetUserData(pEntity);

		WRITEDATA(type, &pItem->CallBack,		sizeof(geBoolean),	1, SaveFD);
		WRITEDATA(type, &pItem->CallBackCount,	sizeof(int),		1, SaveFD);
	}

	return RGF_SUCCESS;
}
Пример #7
0
int initial_handshake(DbXmlSessionData* session) {

  WRITEDATAVARS;
  READLINEVARS;

  // first thing to expect is: 
  // SESSION $envname VERSION $version\n
  READLINE;
  if (sscanf(line, "SESSION %255s VERSION %f",
             session->Session.env_name,
             &(session->Session.client_version)) != 2) {
    LOG_INFO("Client sent bad data (%s)\n", line);
    return -1;
  }
  
  // now we send the server version
  WRITEDATA(session, "SERVER VERSION 0.001\n", 21);
  return 0;

}
Пример #8
0
HRESULT CControlState::Save( CEditX *pCtrl, LPSTREAM pStm )
{
   HRESULT hr = S_OK;
   DWORD dwVer = 5;
   WRITEDATA( dwVer );
   WRITEDATA( m_bColorSyntax );
   WRITEDATA( m_bAllowHSplit );
   WRITEDATA( m_bAllowVSplit );
   WRITEDATA( m_bHScroll );
   WRITEDATA( m_bVScroll );
   WRITEDATA( m_bSmoothScroll );
   WRITEDATA( m_bLineToolTips );
   WRITEDATA( m_bShowLeftMargin );
   WRITEDATA( m_bAllowColumnSel );
   WRITEDATA( m_bAllowDragDrop );
   WRITEDATA( m_bExpandTabs );
   WRITEDATA( m_xPosHSplitter );
   WRITEDATA( m_yPosVSplitter );
   WRITEDATA( m_eIndentStyle );
   WRITEDATA( m_nTabSize );
   WRITEDATA( m_Colors );
   WRITEDATA( m_lf );

   if ( SUCCEEDED( hr ) )
   {
      CComVariant var( m_bstrText );
      hr = var.WriteToStream( pStm );
   }
   else
      goto bail;

   if ( SUCCEEDED( hr ) )
   {
      CComVariant var( m_bstrLang );
      hr = var.WriteToStream( pStm );
   }
   else
      goto bail;

   WRITEDATA( m_bDisplayWhitespace );
   WRITEDATA( m_bWantCarriageReturn );
   WRITEDATA( m_bEnabled );
   WRITEDATA( m_bGlobalProps );
    WRITEDATA( m_bModified );
    WRITEDATA( m_bOverType );
    WRITEDATA( m_bReadOnly );
    WRITEDATA( m_bPreserveCase );
    WRITEDATA( m_bCaseSensitiveSearch );
    WRITEDATA( m_bWholeWordOnly );
    WRITEDATA( m_nMaxUndo );
    WRITEDATA( m_bSelBounds );
   WRITEDATA( m_bRegExp );
   WRITEDATA( m_FontStyles );
   WRITEDATA( m_LineNum );
   WRITEDATA( m_bHideSel );
   WRITEDATA( m_bNormalizeCase );
   WRITEDATA( m_bOvertypeCaret );
   WRITEDATA( m_nHighlightedLine );
   WRITEDATA( m_dwBorderStyle );
   WRITEDATA( m_bStealKeys );

   pCtrl->m_bRequiresSave = FALSE;

   bail:

   return hr;
}