Changes from 1.7 to 1.8

 // === Changes for Movies === //
 
 namespace movie -> has been removed
 movie::Movie -> video::Movie
 movie::MovieManager::loadMovie -> video::VideoDriver::loadMovie
 movie::MovieManager::renderMovieTexture -> video::Movie::renderTexture
 movie::MovieManager::playMovie -> video::Movie::play
 
 // Example:
 video::Movie* MyMovieObject = spRenderer->loadMovie("MyMovieFile.avi");
 
 if (!MyMovieObject->valid())
     io::printError("The movie could not be loaded");
 
 MyMovieObject->play();
 MyMovieObject->setSeek(0.5); // To the middle of the movie
 MyMovieObject->setSpeed(1.5); // Play with 1.5 times the speed, negative values are also possible but much slower!
 
 MyMovieObject->renderTexture(MyTextureObject);
 
 MyMovieObject->reload("MyMovieField2.avi"); // You can also reload an other movie file using the same movie object handle
 // /Example
 
 
 // === Changes for Sounds === //
 
 createListener -> createSoundDevice
 
 // Example:
 sound::SensitiveSoundDevice* spListener = sound::createSoundDevice();
 
 sound::Sound* MySoundObject = spListener->loadSound("MySoundFile.wav");
 
 if (!MySoundObject->valid())
     io::printError("The sound could not be loaded");
 
 MySoundObject->play(); // Remember to the "Movie" class with its simple functions: "play", "pause", "stop"
 MySoundObject->setVolume(0.5); // 50% volume
 MySoundObject->setSeek(0.1);
 MySoundObject->setSpeed(1.5); // 1.5 times the speed, 1.0 is default (in the old version 0.0 was normal, -1.0 was slow, 1.0 was fast)
 
 while (!MySoundObject->playing()) // Check if the sound is currently playing
     if (MySoundObject->finish()) // Stupid request within the above code, but just an example :)
         io::printMessage("The sound has been finished");
 // /Example
 
 // New enumerations
 SOUNDDEVICE_AUTODETECT
 SOUNDDEVICE_WINMM
 SOUNDDEVICE_DUMMY
 
 
 // === Changes for Networking === //
 
 // Example:
 network::NetworkSystem* spNetwork = new network::NetworkSystem(); // (going to be changed in "spDevice->getNetworkSystem()")
 
 if (I_Am_The_Server)
 {
     if (!spNetwork->openServer(Port)) // Default port number is 10000
         io::printError("The server could not be opened");
 }
 else
 {
     // Useful function is "std::vector<io::stringc> spNetwork->getIPAddressesByName("HostName")" to each IP address of the host by its name
     if (!spNetwork->joinServer("192.168.0.1", Port)) // The IP address of the host
         io::printError("The server could not be opened");
 }
 
 spNetwork->sendPacket("MyMessage", 0); // instead of 0 you can use an "network::NetworkClient" pointer for a special Acceptor, otherwise (0) the message will be send to all in the network (which joined the SPE server)
 
 network::SNetworkPacket MyPacket;
 
 if (spNetwork->pickPacket(MyPacket))
     io::printMessage(io::stringc("I've got a network message: ") + MyPacket.Message); // Received a message from "MyPacket.Sender"
 
 spNetwork->disconnect(); // Disconnect from the server or the server self
 // /Example
 
 
 // === Changes for File system === //
 
 io::FileLoader -> io::FileSystem
 
 // Example:
 io::FileSystem* spFileSys = spDevice->getFileSystem(); // alternativly "new io::FileSystem();"
 io::File* MyFileObject = spFileSys->openFile("MyFile.dat");
 
 if (!MyFileObject) // In this case no object will be created when the file could not be opened (e.g. because of missing file)!
     io::printError("The file could not be opened");
 
 MyFileObject->writeString("MyTextField"); // Writes just a string
 MyFileObject->writeStringN("MyTextField"); // Writes a string and a new line character (on Windows: char(13) & char(10), on Linux: char(10))
 MyFileObject->writeStringC("MyTextField"); // Writes an ANSI C string, terminated by 0
 MyFileObject->writeStringData("MyTextField"); // Writes an interger value with the string length and the string self
 
 MyFileObject->writeValue<s32>(math::Random(100)); // Writes a random integer: "s32", 32 bit value
 
 while (!MyFileObject->isEOF()) // Check "EndOfFile"
     io::printMessage(MyFileObject->readString()); // Reads a string until the line ends (description see "writeStringN")
 
 MyFileObject->readValue<s32>(); // Reads an interger value
 
 FILE* AnsiCFileHandle = MyFileObject->getHandle(); // Old name "getID", return the ANSI C "FILE" pointer/ handle to proceed own ANSI C file operations.
 s32 FileSizeInBytes = MyFileObject->getSize(); // Old name "getLength"
 
 spFileSys->closeFile(MyFileObject);
 // /Example
 
 
 // === Changes for Entities and Nodes === //
 
 Node::doTranslate -> Node::translate
 Node::doTransform -> Node::transform
 Node::doTurn -> Node::turn
 Node::doMove -> Node::move
 Entity::doTextureTranslate -> Entity::textureTranslate
 Entity::doTextureTransform -> Entity::textureTransform
 Entity::doTextureTurn -> Entity::textureTurn
 Entity::doMeshTranslate-> Entity::meshTranslate
 Entity::doMeshTransform -> Entity::meshTranslate
 Entity::doMeshTurn-> Entity::meshTurn
 
 // Example:
 scene::Entity* MyMeshObjectA = spSmngr->createModel(scene::ENTITY_TEAPOT);
 scene::Entity* MyMeshObjectB = spSmngr->createModel(scene::ENTITY_TORUS, 15); // 15 is the count of segments, allowed because first parameter of "SModelConstruct" structure is the segmentation, all parameters have default values.
 
 scene::SModelConstruct MyConstruct;
 MyConstruct.Segments = 10; // Segmentation
 MyConstruct.DegreeLength = 360.0f * 2; // two rotations for the spiral
 MyConstruct.Size = 1.0f; // Distance between the ring of the spiral in one rotation
 scene::Entity* MyMeshObjectA = spSmngr->createModel(scene::ENTITY_SPIRAL, MyConstruct);
 // /Example
 
 
 // === Changes for Animation === //
 
 +scene::AnimationNode
 +scene::AnimationMorphTarget
 +scene::AnimationSkeletal
 scene::Animation::doAnimate -> play (+pause, stop, setSpeed, getSeek etc.)
 
 
 // === Changes for UserControl === //
 
 UserControl::isKeyPressed -> keyDown
 UserControl::isKeyReleased -> keyReleased
 UserControl::isKeyHit -> keyHit
 UserControl::isMouseButtonPressed -> mouseDown
 UserControl::isMouseButtonReleased -> mouseReleased
 UserControl::isMouseButtonHit -> mouseHit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines