store avatar position and yaw in file to restore on relaunch

This commit is contained in:
Stephen Birarda 2013-05-03 15:05:28 -07:00
parent 90a08b4dd8
commit 1a8564f9d9
3 changed files with 28 additions and 1 deletions

View file

@ -1539,3 +1539,23 @@ glm::vec3 Avatar::getGravity(glm::vec3 pos) {
return glm::vec3(0.f, 0.f, 0.f);
}
}
const char AVATAR_DATA_FILENAME[] = "avatar.ifd";
void Avatar::writeAvatarDataToFile() {
// write the avatar position and yaw to a local file
FILE* avatarFile = fopen(AVATAR_DATA_FILENAME, "w");
if (avatarFile) {
fprintf(avatarFile, "%f,%f,%f %f", _position.x, _position.y, _position.z, _bodyYaw);
fclose(avatarFile);
}
}
void Avatar::readAvatarDataFromFile() {
FILE* avatarFile = fopen(AVATAR_DATA_FILENAME, "r");
if (avatarFile) {
fscanf(avatarFile, "%f,%f,%f %f", &_position.x, &_position.y, &_position.z, &_bodyYaw);
}
}

View file

@ -145,6 +145,9 @@ public:
// Find out what the local gravity vector is at this location
glm::vec3 getGravity(glm::vec3 pos);
void writeAvatarDataToFile();
void readAvatarDataFromFile();
private:

View file

@ -344,7 +344,9 @@ void init(void)
void terminate () {
// Close serial port
//close(serial_fd);
// close(serial_fd);
myAvatar.writeAvatarDataToFile();
#ifndef _WIN32
audio.terminate();
@ -1944,6 +1946,8 @@ int main(int argc, const char * argv[])
printLog("Network receive thread created.\n");
}
myAvatar.readAvatarDataFromFile();
glutTimerFunc(1000, Timer, 0);
glutMainLoop();