Показать сообщение отдельно
Старый 09.10.2012, 11:26   #1
DarkMedveD
ПроЭктировщик
 
Аватар для DarkMedveD
 
Регистрация: 26.12.2008
Адрес: Usa
Сообщений: 151
Написано 5 полезных сообщений
(для 6 пользователей)
Проблема с Xors3D на C++

Суть проблемы проста и ужасна:
Если выбрана конфигурация Debug, то каким-то странным образом Xors меняет все координаты X на Z и наоборот.
Если выбрала конфигурация Release, то все нормально.

А столкнулся я с проблемой когда сохранял данные в файл. В зависимости от конфигурации он подставляет разные данные:

int	SaveGame=xWriteFile(patch);
	int i;
	xWriteInt(SaveGame,int(Objects.size()));
	for (i=0;i<int(Objects.size());i++)
	{
		xWriteInt(SaveGame, Objects[i].Type);
		xWriteFloat(SaveGame, float(Objects[i].x));
		xWriteFloat(SaveGame, float(Objects[i].y));
		xWriteFloat(SaveGame, float(Objects[i].z));
		xWriteFloat(SaveGame, float(Objects[i].ax));
		xWriteFloat(SaveGame, float(Objects[i].ay));
		xWriteFloat(SaveGame, float(Objects[i].az));
		xWriteFloat(SaveGame, float(Objects[i].sx));
		xWriteFloat(SaveGame, float(Objects[i].sy));
		xWriteFloat(SaveGame, float(Objects[i].sz));
	}
	xCloseFile(SaveGame);
После этого я загружаю их из файла и получаю, в зависимости от конфигурации разные координаты:
	int LoadGame=xReadFile(patch);
	int size=xReadInt(LoadGame);
	int i;
	for (i=0;i<size;i++)
	{
		int type=xReadInt(LoadGame);
		Objects.push_back(Items[type]);
		Objects[i].Type=type;
		Objects[i].SetPosition(xReadFloat(LoadGame),xReadFloat(LoadGame),xReadFloat(LoadGame));
		Objects[i].TurnObject(xReadFloat(LoadGame),xReadFloat(LoadGame),xReadFloat(LoadGame));
		Objects[i].ScaleObject(xReadFloat(LoadGame)-1,xReadFloat(LoadGame)-1,xReadFloat(LoadGame)-1);
		xEntityFX(Objects[i].Mesh,0);
	}
	xCloseFile(LoadGame);
(Offline)
 
Ответить с цитированием