├── .gitattributes ├── .gitignore ├── Android.mk ├── CMakeLists.txt ├── LICENSE ├── README.md ├── Release ├── GreyGuy │ ├── Copyright_Information_Please_Read.txt │ ├── arms │ │ ├── p_arm_idle.png │ │ ├── p_arm_idle_a.png │ │ ├── p_arm_slide_0.png │ │ ├── p_arm_throw_0.png │ │ ├── p_arm_walk.png │ │ ├── p_forarm_idle_0.png │ │ ├── p_forarm_idle_a.png │ │ ├── p_forarm_jump_0.png │ │ ├── p_forarm_side_0.png │ │ ├── p_forarm_under_0.png │ │ ├── p_forarm_walk_a.png │ │ └── throw_blur_0.png │ ├── feet │ │ ├── p_foot_hit_a.png │ │ ├── p_foot_hot_0.png │ │ ├── p_foot_idle_0.png │ │ ├── p_foot_jump_0.png │ │ ├── p_foot_walk_0.png │ │ └── p_foot_walk_a.png │ ├── guns │ │ └── hand-gun.png │ ├── hands │ │ ├── p_hand_1.png │ │ ├── p_hand_2.png │ │ ├── p_hand_a.png │ │ ├── p_hand_a_edge.png │ │ ├── p_hand_b.png │ │ ├── p_hand_c.png │ │ ├── p_hand_edge_0.png │ │ ├── p_hand_float_0.png │ │ ├── p_hand_hang_0.png │ │ ├── p_hand_hang_1.png │ │ ├── p_hand_hang_a.png │ │ ├── p_hand_hit_0.png │ │ ├── p_hand_hit_a.png │ │ ├── p_hand_idle_0.png │ │ ├── p_hand_jump_0.png │ │ ├── p_hand_jump_a.png │ │ ├── p_hand_prepunch_0.png │ │ ├── p_hand_prepunch_x.png │ │ ├── p_hand_punch_0.png │ │ ├── p_hand_push_0.png │ │ ├── p_hand_push_a.png │ │ ├── p_hand_slide_0.png │ │ ├── p_hand_throw_0.png │ │ └── p_punch_blur.png │ ├── head │ │ ├── p_head_blink_0.png │ │ ├── p_head_blink_1.png │ │ ├── p_head_concern.png │ │ ├── p_head_concern_blink_0.png │ │ ├── p_head_concern_blink_1.png │ │ ├── p_head_die.png │ │ ├── p_head_hurt.png │ │ ├── p_head_idle.png │ │ ├── p_head_idle_blink_0.png │ │ ├── p_head_idle_blink_1.png │ │ ├── p_head_push.png │ │ ├── p_head_turn_0.png │ │ └── p_head_walk.png │ ├── legs │ │ ├── p_leg_a.png │ │ ├── p_leg_idle_0.png │ │ ├── p_leg_walk_0.png │ │ ├── p_pelvis_die.png │ │ ├── p_pelvis_idle.png │ │ ├── p_pelvis_walk.png │ │ ├── p_thigh_a.png │ │ ├── p_thigh_idle_0.png │ │ └── p_thigh_walk_0.png │ ├── player.scml │ ├── player.scon │ └── torso │ │ ├── p_torso_front.png │ │ ├── p_torso_idle.png │ │ ├── p_torso_jump.png │ │ ├── p_torso_punch_0.png │ │ └── p_torso_walk.png ├── GreyGuyAtlas │ ├── GreyGuy.scml │ ├── GreyGuy_arms.json │ ├── GreyGuy_arms.png │ ├── GreyGuy_feet.json │ ├── GreyGuy_feet.png │ ├── GreyGuy_hands.json │ ├── GreyGuy_hands.png │ ├── GreyGuy_head.json │ ├── GreyGuy_head.png │ ├── GreyGuy_legs.json │ ├── GreyGuy_legs.png │ ├── GreyGuy_torso.json │ └── GreyGuy_torso.png ├── PT-Sans │ ├── PTC55F.ttf │ └── Paratype PT Sans Free Font License.txt ├── SpriterPlusPlus.exe ├── SpriterPlusPlus.tlog │ ├── CL.command.1.tlog │ ├── CL.read.1.tlog │ ├── CL.write.1.tlog │ ├── SpriterPlusPlus.lastbuildstate │ ├── link.command.1.tlog │ ├── link.read.1.tlog │ └── link.write.1.tlog ├── sfml-audio-2.dll ├── sfml-graphics-2.dll ├── sfml-system-2.dll └── sfml-window-2.dll ├── SFML-2.3.2 ├── bin │ ├── openal32.dll │ ├── sfml-audio-2.dll │ ├── sfml-audio-d-2.dll │ ├── sfml-graphics-2.dll │ ├── sfml-graphics-d-2.dll │ ├── sfml-network-2.dll │ ├── sfml-network-d-2.dll │ ├── sfml-system-2.dll │ ├── sfml-system-d-2.dll │ ├── sfml-window-2.dll │ └── sfml-window-d-2.dll ├── cmake │ └── Modules │ │ └── FindSFML.cmake ├── doc │ ├── html │ │ ├── AlResource_8hpp_source.html │ │ ├── Audio_2Export_8hpp_source.html │ │ ├── Audio_8hpp_source.html │ │ ├── BlendMode_8hpp_source.html │ │ ├── CircleShape_8hpp_source.html │ │ ├── Clock_8hpp_source.html │ │ ├── Color_8hpp_source.html │ │ ├── Config_8hpp_source.html │ │ ├── ContextSettings_8hpp_source.html │ │ ├── Context_8hpp_source.html │ │ ├── ConvexShape_8hpp_source.html │ │ ├── Drawable_8hpp_source.html │ │ ├── Err_8hpp_source.html │ │ ├── Event_8hpp_source.html │ │ ├── FileInputStream_8hpp_source.html │ │ ├── Font_8hpp_source.html │ │ ├── Ftp_8hpp_source.html │ │ ├── GlResource_8hpp_source.html │ │ ├── Glyph_8hpp_source.html │ │ ├── Graphics_2Export_8hpp_source.html │ │ ├── Graphics_8hpp_source.html │ │ ├── Http_8hpp_source.html │ │ ├── Image_8hpp_source.html │ │ ├── InputSoundFile_8hpp_source.html │ │ ├── InputStream_8hpp_source.html │ │ ├── IpAddress_8hpp_source.html │ │ ├── Joystick_8hpp_source.html │ │ ├── Keyboard_8hpp_source.html │ │ ├── Listener_8hpp_source.html │ │ ├── Lock_8hpp_source.html │ │ ├── Main_8hpp_source.html │ │ ├── MemoryInputStream_8hpp_source.html │ │ ├── Mouse_8hpp_source.html │ │ ├── Music_8hpp_source.html │ │ ├── Mutex_8hpp_source.html │ │ ├── Network_2Export_8hpp_source.html │ │ ├── Network_8hpp_source.html │ │ ├── NonCopyable_8hpp_source.html │ │ ├── OpenGL_8hpp_source.html │ │ ├── OutputSoundFile_8hpp_source.html │ │ ├── Packet_8hpp_source.html │ │ ├── PrimitiveType_8hpp_source.html │ │ ├── Rect_8hpp_source.html │ │ ├── RectangleShape_8hpp_source.html │ │ ├── RenderStates_8hpp_source.html │ │ ├── RenderTarget_8hpp_source.html │ │ ├── RenderTexture_8hpp_source.html │ │ ├── RenderWindow_8hpp_source.html │ │ ├── Sensor_8hpp_source.html │ │ ├── Shader_8hpp_source.html │ │ ├── Shape_8hpp_source.html │ │ ├── Sleep_8hpp_source.html │ │ ├── SocketHandle_8hpp_source.html │ │ ├── SocketSelector_8hpp_source.html │ │ ├── Socket_8hpp_source.html │ │ ├── SoundBufferRecorder_8hpp_source.html │ │ ├── SoundBuffer_8hpp_source.html │ │ ├── SoundFileFactory_8hpp_source.html │ │ ├── SoundFileReader_8hpp_source.html │ │ ├── SoundFileWriter_8hpp_source.html │ │ ├── SoundRecorder_8hpp_source.html │ │ ├── SoundSource_8hpp_source.html │ │ ├── SoundStream_8hpp_source.html │ │ ├── Sound_8hpp_source.html │ │ ├── Sprite_8hpp_source.html │ │ ├── String_8hpp_source.html │ │ ├── System_2Export_8hpp_source.html │ │ ├── System_8hpp_source.html │ │ ├── TcpListener_8hpp_source.html │ │ ├── TcpSocket_8hpp_source.html │ │ ├── Text_8hpp_source.html │ │ ├── Texture_8hpp_source.html │ │ ├── ThreadLocalPtr_8hpp_source.html │ │ ├── ThreadLocal_8hpp_source.html │ │ ├── Thread_8hpp_source.html │ │ ├── Time_8hpp_source.html │ │ ├── Touch_8hpp_source.html │ │ ├── Transform_8hpp_source.html │ │ ├── Transformable_8hpp_source.html │ │ ├── UdpSocket_8hpp_source.html │ │ ├── Utf_8hpp_source.html │ │ ├── Vector2_8hpp_source.html │ │ ├── Vector3_8hpp_source.html │ │ ├── VertexArray_8hpp_source.html │ │ ├── Vertex_8hpp_source.html │ │ ├── VideoMode_8hpp_source.html │ │ ├── View_8hpp_source.html │ │ ├── WindowHandle_8hpp_source.html │ │ ├── WindowStyle_8hpp_source.html │ │ ├── Window_2Export_8hpp_source.html │ │ ├── Window_2Window_8hpp_source.html │ │ ├── Window_8hpp_source.html │ │ ├── annotated.html │ │ ├── bc_s.png │ │ ├── bdwn.png │ │ ├── classFileInputStream.html │ │ ├── classMemoryeInputStream.html │ │ ├── classes.html │ │ ├── classsf_1_1AlResource-members.html │ │ ├── classsf_1_1AlResource.html │ │ ├── classsf_1_1AlResource.png │ │ ├── classsf_1_1BlendMode-members.html │ │ ├── classsf_1_1CircleShape-members.html │ │ ├── classsf_1_1CircleShape.html │ │ ├── classsf_1_1CircleShape.png │ │ ├── classsf_1_1Clock-members.html │ │ ├── classsf_1_1Clock.html │ │ ├── classsf_1_1Color-members.html │ │ ├── classsf_1_1Color.html │ │ ├── classsf_1_1Context-members.html │ │ ├── classsf_1_1Context.html │ │ ├── classsf_1_1Context.png │ │ ├── classsf_1_1ContextSettings-members.html │ │ ├── classsf_1_1ConvexShape-members.html │ │ ├── classsf_1_1ConvexShape.html │ │ ├── classsf_1_1ConvexShape.png │ │ ├── classsf_1_1Drawable-members.html │ │ ├── classsf_1_1Drawable.html │ │ ├── classsf_1_1Drawable.png │ │ ├── classsf_1_1Event-members.html │ │ ├── classsf_1_1Event.html │ │ ├── classsf_1_1FileInputStream-members.html │ │ ├── classsf_1_1FileInputStream.html │ │ ├── classsf_1_1FileInputStream.png │ │ ├── classsf_1_1Font-members.html │ │ ├── classsf_1_1Font.html │ │ ├── classsf_1_1Ftp-members.html │ │ ├── classsf_1_1Ftp.html │ │ ├── classsf_1_1Ftp.png │ │ ├── classsf_1_1Ftp_1_1DirectoryResponse-members.html │ │ ├── classsf_1_1Ftp_1_1DirectoryResponse.html │ │ ├── classsf_1_1Ftp_1_1DirectoryResponse.png │ │ ├── classsf_1_1Ftp_1_1ListingResponse-members.html │ │ ├── classsf_1_1Ftp_1_1ListingResponse.html │ │ ├── classsf_1_1Ftp_1_1ListingResponse.png │ │ ├── classsf_1_1Ftp_1_1Response-members.html │ │ ├── classsf_1_1Ftp_1_1Response.html │ │ ├── classsf_1_1Ftp_1_1Response.png │ │ ├── classsf_1_1GlResource-members.html │ │ ├── classsf_1_1GlResource.html │ │ ├── classsf_1_1GlResource.png │ │ ├── classsf_1_1Glyph-members.html │ │ ├── classsf_1_1Glyph.html │ │ ├── classsf_1_1Http-members.html │ │ ├── classsf_1_1Http.html │ │ ├── classsf_1_1Http.png │ │ ├── classsf_1_1Http_1_1Request-members.html │ │ ├── classsf_1_1Http_1_1Request.html │ │ ├── classsf_1_1Http_1_1Response-members.html │ │ ├── classsf_1_1Http_1_1Response.html │ │ ├── classsf_1_1Image-members.html │ │ ├── classsf_1_1Image.html │ │ ├── classsf_1_1InputSoundFile-members.html │ │ ├── classsf_1_1InputSoundFile.html │ │ ├── classsf_1_1InputSoundFile.png │ │ ├── classsf_1_1InputStream-members.html │ │ ├── classsf_1_1InputStream.html │ │ ├── classsf_1_1InputStream.png │ │ ├── classsf_1_1IpAddress-members.html │ │ ├── classsf_1_1IpAddress.html │ │ ├── classsf_1_1Joystick-members.html │ │ ├── classsf_1_1Joystick.html │ │ ├── classsf_1_1Keyboard-members.html │ │ ├── classsf_1_1Keyboard.html │ │ ├── classsf_1_1Listener-members.html │ │ ├── classsf_1_1Listener.html │ │ ├── classsf_1_1Lock-members.html │ │ ├── classsf_1_1Lock.html │ │ ├── classsf_1_1Lock.png │ │ ├── classsf_1_1MemoryInputStream-members.html │ │ ├── classsf_1_1MemoryInputStream.html │ │ ├── classsf_1_1MemoryInputStream.png │ │ ├── classsf_1_1Mouse-members.html │ │ ├── classsf_1_1Mouse.html │ │ ├── classsf_1_1Music-members.html │ │ ├── classsf_1_1Music.html │ │ ├── classsf_1_1Music.png │ │ ├── classsf_1_1Mutex-members.html │ │ ├── classsf_1_1Mutex.html │ │ ├── classsf_1_1Mutex.png │ │ ├── classsf_1_1NonCopyable-members.html │ │ ├── classsf_1_1NonCopyable.html │ │ ├── classsf_1_1NonCopyable.png │ │ ├── classsf_1_1OutputSoundFile-members.html │ │ ├── classsf_1_1OutputSoundFile.html │ │ ├── classsf_1_1OutputSoundFile.png │ │ ├── classsf_1_1Packet-members.html │ │ ├── classsf_1_1Packet.html │ │ ├── classsf_1_1Rect-members.html │ │ ├── classsf_1_1Rect.html │ │ ├── classsf_1_1RectangleShape-members.html │ │ ├── classsf_1_1RectangleShape.html │ │ ├── classsf_1_1RectangleShape.png │ │ ├── classsf_1_1RenderStates-members.html │ │ ├── classsf_1_1RenderStates.html │ │ ├── classsf_1_1RenderTarget-members.html │ │ ├── classsf_1_1RenderTarget.html │ │ ├── classsf_1_1RenderTarget.png │ │ ├── classsf_1_1RenderTexture-members.html │ │ ├── classsf_1_1RenderTexture.html │ │ ├── classsf_1_1RenderTexture.png │ │ ├── classsf_1_1RenderWindow-members.html │ │ ├── classsf_1_1RenderWindow.html │ │ ├── classsf_1_1RenderWindow.png │ │ ├── classsf_1_1Sensor-members.html │ │ ├── classsf_1_1Sensor.html │ │ ├── classsf_1_1Shader-members.html │ │ ├── classsf_1_1Shader.html │ │ ├── classsf_1_1Shader.png │ │ ├── classsf_1_1Shape-members.html │ │ ├── classsf_1_1Shape.html │ │ ├── classsf_1_1Shape.png │ │ ├── classsf_1_1Socket-members.html │ │ ├── classsf_1_1Socket.html │ │ ├── classsf_1_1Socket.png │ │ ├── classsf_1_1SocketSelector-members.html │ │ ├── classsf_1_1SocketSelector.html │ │ ├── classsf_1_1Sound-members.html │ │ ├── classsf_1_1Sound.html │ │ ├── classsf_1_1Sound.png │ │ ├── classsf_1_1SoundBuffer-members.html │ │ ├── classsf_1_1SoundBuffer.html │ │ ├── classsf_1_1SoundBuffer.png │ │ ├── classsf_1_1SoundBufferRecorder-members.html │ │ ├── classsf_1_1SoundBufferRecorder.html │ │ ├── classsf_1_1SoundBufferRecorder.png │ │ ├── classsf_1_1SoundFileFactory-members.html │ │ ├── classsf_1_1SoundFileFactory.html │ │ ├── classsf_1_1SoundFileReader-members.html │ │ ├── classsf_1_1SoundFileReader.html │ │ ├── classsf_1_1SoundFileWriter-members.html │ │ ├── classsf_1_1SoundFileWriter.html │ │ ├── classsf_1_1SoundRecorder-members.html │ │ ├── classsf_1_1SoundRecorder.html │ │ ├── classsf_1_1SoundRecorder.png │ │ ├── classsf_1_1SoundSource-members.html │ │ ├── classsf_1_1SoundSource.html │ │ ├── classsf_1_1SoundSource.png │ │ ├── classsf_1_1SoundStream-members.html │ │ ├── classsf_1_1SoundStream.html │ │ ├── classsf_1_1SoundStream.png │ │ ├── classsf_1_1Sprite-members.html │ │ ├── classsf_1_1Sprite.html │ │ ├── classsf_1_1Sprite.png │ │ ├── classsf_1_1String-members.html │ │ ├── classsf_1_1String.html │ │ ├── classsf_1_1TcpListener-members.html │ │ ├── classsf_1_1TcpListener.html │ │ ├── classsf_1_1TcpListener.png │ │ ├── classsf_1_1TcpSocket-members.html │ │ ├── classsf_1_1TcpSocket.html │ │ ├── classsf_1_1TcpSocket.png │ │ ├── classsf_1_1Text-members.html │ │ ├── classsf_1_1Text.html │ │ ├── classsf_1_1Text.png │ │ ├── classsf_1_1Texture-members.html │ │ ├── classsf_1_1Texture.html │ │ ├── classsf_1_1Texture.png │ │ ├── classsf_1_1Thread-members.html │ │ ├── classsf_1_1Thread.html │ │ ├── classsf_1_1Thread.png │ │ ├── classsf_1_1ThreadLocal-members.html │ │ ├── classsf_1_1ThreadLocal.html │ │ ├── classsf_1_1ThreadLocal.png │ │ ├── classsf_1_1ThreadLocalPtr-members.html │ │ ├── classsf_1_1ThreadLocalPtr.html │ │ ├── classsf_1_1ThreadLocalPtr.png │ │ ├── classsf_1_1Time-members.html │ │ ├── classsf_1_1Time.html │ │ ├── classsf_1_1Touch-members.html │ │ ├── classsf_1_1Touch.html │ │ ├── classsf_1_1Transform-members.html │ │ ├── classsf_1_1Transform.html │ │ ├── classsf_1_1Transformable-members.html │ │ ├── classsf_1_1Transformable.html │ │ ├── classsf_1_1Transformable.png │ │ ├── classsf_1_1UdpSocket-members.html │ │ ├── classsf_1_1UdpSocket.html │ │ ├── classsf_1_1UdpSocket.png │ │ ├── classsf_1_1Utf_3_0116_01_4-members.html │ │ ├── classsf_1_1Utf_3_0116_01_4.html │ │ ├── classsf_1_1Utf_3_0132_01_4-members.html │ │ ├── classsf_1_1Utf_3_0132_01_4.html │ │ ├── classsf_1_1Utf_3_018_01_4-members.html │ │ ├── classsf_1_1Utf_3_018_01_4.html │ │ ├── classsf_1_1Vector2-members.html │ │ ├── classsf_1_1Vector2.html │ │ ├── classsf_1_1Vector3-members.html │ │ ├── classsf_1_1Vector3.html │ │ ├── classsf_1_1Vertex-members.html │ │ ├── classsf_1_1Vertex.html │ │ ├── classsf_1_1VertexArray-members.html │ │ ├── classsf_1_1VertexArray.html │ │ ├── classsf_1_1VertexArray.png │ │ ├── classsf_1_1VideoMode-members.html │ │ ├── classsf_1_1VideoMode.html │ │ ├── classsf_1_1View-members.html │ │ ├── classsf_1_1View.html │ │ ├── classsf_1_1Window-members.html │ │ ├── classsf_1_1Window.html │ │ ├── classsf_1_1Window.png │ │ ├── closed.png │ │ ├── deprecated.html │ │ ├── dir_139bdea5517c8285c4c6d697501014f9.html │ │ ├── dir_357aa70a9ab2c22ea525f6a52810701d.html │ │ ├── dir_6282a846aef46c562df320c3c321393d.html │ │ ├── dir_873f3329ad3c448b0452012e1b50a7ca.html │ │ ├── dir_9ca93fe75e375680c8d5541792711465.html │ │ ├── dir_a465d99dc6d591b1fb2657a3e2e0ee9b.html │ │ ├── dir_b2566b3f099aab44b5dbaaac139ebf00.html │ │ ├── dir_fd27c1b34c2c91b14b67b46e2d75b448.html │ │ ├── doxygen.css │ │ ├── doxygen.png │ │ ├── dynsections.js │ │ ├── files.html │ │ ├── ftv2blank.png │ │ ├── ftv2doc.png │ │ ├── ftv2folderclosed.png │ │ ├── ftv2folderopen.png │ │ ├── ftv2lastnode.png │ │ ├── ftv2link.png │ │ ├── ftv2mlastnode.png │ │ ├── ftv2mnode.png │ │ ├── ftv2node.png │ │ ├── ftv2plastnode.png │ │ ├── ftv2pnode.png │ │ ├── ftv2splitbar.png │ │ ├── ftv2vertline.png │ │ ├── functions.html │ │ ├── functions_b.html │ │ ├── functions_c.html │ │ ├── functions_d.html │ │ ├── functions_e.html │ │ ├── functions_enum.html │ │ ├── functions_eval.html │ │ ├── functions_eval_b.html │ │ ├── functions_eval_c.html │ │ ├── functions_eval_d.html │ │ ├── functions_eval_e.html │ │ ├── functions_eval_f.html │ │ ├── functions_eval_g.html │ │ ├── functions_eval_h.html │ │ ├── functions_eval_i.html │ │ ├── functions_eval_j.html │ │ ├── functions_eval_k.html │ │ ├── functions_eval_l.html │ │ ├── functions_eval_m.html │ │ ├── functions_eval_n.html │ │ ├── functions_eval_o.html │ │ ├── functions_eval_p.html │ │ ├── functions_eval_q.html │ │ ├── functions_eval_r.html │ │ ├── functions_eval_s.html │ │ ├── functions_eval_t.html │ │ ├── functions_eval_u.html │ │ ├── functions_eval_v.html │ │ ├── functions_eval_w.html │ │ ├── functions_eval_x.html │ │ ├── functions_eval_y.html │ │ ├── functions_eval_z.html │ │ ├── functions_f.html │ │ ├── functions_func.html │ │ ├── functions_func_b.html │ │ ├── functions_func_c.html │ │ ├── functions_func_d.html │ │ ├── functions_func_e.html │ │ ├── functions_func_f.html │ │ ├── functions_func_g.html │ │ ├── functions_func_h.html │ │ ├── functions_func_i.html │ │ ├── functions_func_k.html │ │ ├── functions_func_l.html │ │ ├── functions_func_m.html │ │ ├── functions_func_n.html │ │ ├── functions_func_o.html │ │ ├── functions_func_p.html │ │ ├── functions_func_r.html │ │ ├── functions_func_s.html │ │ ├── functions_func_t.html │ │ ├── functions_func_u.html │ │ ├── functions_func_v.html │ │ ├── functions_func_w.html │ │ ├── functions_func_z.html │ │ ├── functions_func_~.html │ │ ├── functions_g.html │ │ ├── functions_h.html │ │ ├── functions_i.html │ │ ├── functions_j.html │ │ ├── functions_k.html │ │ ├── functions_l.html │ │ ├── functions_m.html │ │ ├── functions_n.html │ │ ├── functions_o.html │ │ ├── functions_p.html │ │ ├── functions_q.html │ │ ├── functions_r.html │ │ ├── functions_s.html │ │ ├── functions_t.html │ │ ├── functions_type.html │ │ ├── functions_u.html │ │ ├── functions_v.html │ │ ├── functions_vars.html │ │ ├── functions_w.html │ │ ├── functions_x.html │ │ ├── functions_y.html │ │ ├── functions_z.html │ │ ├── functions_~.html │ │ ├── group__audio.html │ │ ├── group__graphics.html │ │ ├── group__network.html │ │ ├── group__system.html │ │ ├── group__window.html │ │ ├── hierarchy.html │ │ ├── index.hhc │ │ ├── index.hhk │ │ ├── index.hhp │ │ ├── index.html │ │ ├── jquery.js │ │ ├── mainpage_8hpp_source.html │ │ ├── modules.html │ │ ├── nav_f.png │ │ ├── nav_g.png │ │ ├── nav_h.png │ │ ├── open.png │ │ ├── pages.html │ │ ├── singletonsf_1_1Utf.html │ │ ├── structsf_1_1BlendMode.html │ │ ├── structsf_1_1ContextSettings.html │ │ ├── structsf_1_1Event_1_1JoystickButtonEvent-members.html │ │ ├── structsf_1_1Event_1_1JoystickButtonEvent.html │ │ ├── structsf_1_1Event_1_1JoystickConnectEvent-members.html │ │ ├── structsf_1_1Event_1_1JoystickConnectEvent.html │ │ ├── structsf_1_1Event_1_1JoystickMoveEvent-members.html │ │ ├── structsf_1_1Event_1_1JoystickMoveEvent.html │ │ ├── structsf_1_1Event_1_1KeyEvent-members.html │ │ ├── structsf_1_1Event_1_1KeyEvent.html │ │ ├── structsf_1_1Event_1_1MouseButtonEvent-members.html │ │ ├── structsf_1_1Event_1_1MouseButtonEvent.html │ │ ├── structsf_1_1Event_1_1MouseMoveEvent-members.html │ │ ├── structsf_1_1Event_1_1MouseMoveEvent.html │ │ ├── structsf_1_1Event_1_1MouseWheelEvent-members.html │ │ ├── structsf_1_1Event_1_1MouseWheelEvent.html │ │ ├── structsf_1_1Event_1_1MouseWheelScrollEvent-members.html │ │ ├── structsf_1_1Event_1_1MouseWheelScrollEvent.html │ │ ├── structsf_1_1Event_1_1SensorEvent-members.html │ │ ├── structsf_1_1Event_1_1SensorEvent.html │ │ ├── structsf_1_1Event_1_1SizeEvent-members.html │ │ ├── structsf_1_1Event_1_1SizeEvent.html │ │ ├── structsf_1_1Event_1_1TextEvent-members.html │ │ ├── structsf_1_1Event_1_1TextEvent.html │ │ ├── structsf_1_1Event_1_1TouchEvent-members.html │ │ ├── structsf_1_1Event_1_1TouchEvent.html │ │ ├── structsf_1_1Font_1_1Info-members.html │ │ ├── structsf_1_1Font_1_1Info.html │ │ ├── structsf_1_1Joystick_1_1Identification-members.html │ │ ├── structsf_1_1Joystick_1_1Identification.html │ │ ├── structsf_1_1Shader_1_1CurrentTextureType.html │ │ ├── structsf_1_1SoundFileReader_1_1Info-members.html │ │ ├── structsf_1_1SoundFileReader_1_1Info.html │ │ ├── structsf_1_1SoundStream_1_1Chunk-members.html │ │ ├── structsf_1_1SoundStream_1_1Chunk.html │ │ ├── sync_off.png │ │ ├── sync_on.png │ │ ├── tab_a.png │ │ ├── tab_b.png │ │ ├── tab_h.png │ │ ├── tab_s.png │ │ └── tabs.css │ └── sfml.chm ├── examples │ ├── ftp │ │ ├── Ftp.cpp │ │ └── ftp.exe │ ├── opengl │ │ ├── OpenGL.cpp │ │ ├── opengl.exe │ │ └── resources │ │ │ ├── background.jpg │ │ │ ├── sansation.ttf │ │ │ └── texture.jpg │ ├── pong │ │ ├── Pong.cpp │ │ ├── pong.exe │ │ └── resources │ │ │ ├── ball.wav │ │ │ └── sansation.ttf │ ├── shader │ │ ├── Effect.hpp │ │ ├── Shader.cpp │ │ ├── resources │ │ │ ├── background.jpg │ │ │ ├── blink.frag │ │ │ ├── blur.frag │ │ │ ├── devices.png │ │ │ ├── edge.frag │ │ │ ├── pixelate.frag │ │ │ ├── sansation.ttf │ │ │ ├── sfml.png │ │ │ ├── storm.vert │ │ │ ├── text-background.png │ │ │ └── wave.vert │ │ └── shader.exe │ ├── sockets │ │ ├── Sockets.cpp │ │ ├── TCP.cpp │ │ ├── UDP.cpp │ │ └── sockets.exe │ ├── sound-capture │ │ ├── SoundCapture.cpp │ │ └── sound-capture.exe │ ├── sound │ │ ├── Sound.cpp │ │ ├── resources │ │ │ ├── canary.wav │ │ │ ├── ding.flac │ │ │ └── orchestral.ogg │ │ └── sound.exe │ ├── voip │ │ ├── Client.cpp │ │ ├── Server.cpp │ │ ├── VoIP.cpp │ │ └── voip.exe │ ├── win32 │ │ ├── Win32.cpp │ │ ├── resources │ │ │ ├── image1.jpg │ │ │ └── image2.jpg │ │ └── win32.exe │ └── window │ │ ├── Window.cpp │ │ └── window.exe ├── include │ └── SFML │ │ ├── Audio.hpp │ │ ├── Audio │ │ ├── AlResource.hpp │ │ ├── Export.hpp │ │ ├── InputSoundFile.hpp │ │ ├── Listener.hpp │ │ ├── Music.hpp │ │ ├── OutputSoundFile.hpp │ │ ├── Sound.hpp │ │ ├── SoundBuffer.hpp │ │ ├── SoundBufferRecorder.hpp │ │ ├── SoundFileFactory.hpp │ │ ├── SoundFileFactory.inl │ │ ├── SoundFileReader.hpp │ │ ├── SoundFileWriter.hpp │ │ ├── SoundRecorder.hpp │ │ ├── SoundSource.hpp │ │ └── SoundStream.hpp │ │ ├── Config.hpp │ │ ├── Graphics.hpp │ │ ├── Graphics │ │ ├── BlendMode.hpp │ │ ├── CircleShape.hpp │ │ ├── Color.hpp │ │ ├── ConvexShape.hpp │ │ ├── Drawable.hpp │ │ ├── Export.hpp │ │ ├── Font.hpp │ │ ├── Glyph.hpp │ │ ├── Image.hpp │ │ ├── PrimitiveType.hpp │ │ ├── Rect.hpp │ │ ├── Rect.inl │ │ ├── RectangleShape.hpp │ │ ├── RenderStates.hpp │ │ ├── RenderTarget.hpp │ │ ├── RenderTexture.hpp │ │ ├── RenderWindow.hpp │ │ ├── Shader.hpp │ │ ├── Shape.hpp │ │ ├── Sprite.hpp │ │ ├── Text.hpp │ │ ├── Texture.hpp │ │ ├── Transform.hpp │ │ ├── Transformable.hpp │ │ ├── Vertex.hpp │ │ ├── VertexArray.hpp │ │ └── View.hpp │ │ ├── Main.hpp │ │ ├── Network.hpp │ │ ├── Network │ │ ├── Export.hpp │ │ ├── Ftp.hpp │ │ ├── Http.hpp │ │ ├── IpAddress.hpp │ │ ├── Packet.hpp │ │ ├── Socket.hpp │ │ ├── SocketHandle.hpp │ │ ├── SocketSelector.hpp │ │ ├── TcpListener.hpp │ │ ├── TcpSocket.hpp │ │ └── UdpSocket.hpp │ │ ├── OpenGL.hpp │ │ ├── System.hpp │ │ ├── System │ │ ├── Clock.hpp │ │ ├── Err.hpp │ │ ├── Export.hpp │ │ ├── FileInputStream.hpp │ │ ├── InputStream.hpp │ │ ├── Lock.hpp │ │ ├── MemoryInputStream.hpp │ │ ├── Mutex.hpp │ │ ├── NonCopyable.hpp │ │ ├── Sleep.hpp │ │ ├── String.hpp │ │ ├── String.inl │ │ ├── Thread.hpp │ │ ├── Thread.inl │ │ ├── ThreadLocal.hpp │ │ ├── ThreadLocalPtr.hpp │ │ ├── ThreadLocalPtr.inl │ │ ├── Time.hpp │ │ ├── Utf.hpp │ │ ├── Utf.inl │ │ ├── Vector2.hpp │ │ ├── Vector2.inl │ │ ├── Vector3.hpp │ │ └── Vector3.inl │ │ ├── Window.hpp │ │ └── Window │ │ ├── Context.hpp │ │ ├── ContextSettings.hpp │ │ ├── Event.hpp │ │ ├── Export.hpp │ │ ├── GlResource.hpp │ │ ├── Joystick.hpp │ │ ├── Keyboard.hpp │ │ ├── Mouse.hpp │ │ ├── Sensor.hpp │ │ ├── Touch.hpp │ │ ├── VideoMode.hpp │ │ ├── Window.hpp │ │ ├── WindowHandle.hpp │ │ └── WindowStyle.hpp ├── lib │ ├── flac.lib │ ├── freetype.lib │ ├── jpeg.lib │ ├── ogg.lib │ ├── openal32.lib │ ├── sfml-audio-d.lib │ ├── sfml-audio-s-d.lib │ ├── sfml-audio-s.lib │ ├── sfml-audio.lib │ ├── sfml-graphics-d.lib │ ├── sfml-graphics-s-d.lib │ ├── sfml-graphics-s.lib │ ├── sfml-graphics.lib │ ├── sfml-main-d.lib │ ├── sfml-main.lib │ ├── sfml-network-d.lib │ ├── sfml-network-s-d.lib │ ├── sfml-network-s.lib │ ├── sfml-network.lib │ ├── sfml-system-d.lib │ ├── sfml-system-s-d.lib │ ├── sfml-system-s.lib │ ├── sfml-system.lib │ ├── sfml-window-d.lib │ ├── sfml-window-s-d.lib │ ├── sfml-window-s.lib │ ├── sfml-window.lib │ ├── vorbis.lib │ ├── vorbisenc.lib │ └── vorbisfile.lib ├── license.txt └── readme.txt ├── SpriterPlusPlus License.txt ├── SpriterPlusPlus.sdf ├── SpriterPlusPlus.sln ├── SpriterPlusPlus.vcxproj ├── example ├── CMakeLists.txt ├── main.cpp └── override │ ├── examplefilefactory.cpp │ ├── examplefilefactory.h │ ├── exampleobjectfactory.cpp │ ├── exampleobjectfactory.h │ ├── jsonspriterfileattributewrapper.cpp │ ├── jsonspriterfileattributewrapper.h │ ├── jsonspriterfiledocumentwrapper.cpp │ ├── jsonspriterfiledocumentwrapper.h │ ├── jsonspriterfileelementwrapper.cpp │ ├── jsonspriterfileelementwrapper.h │ ├── pugixmlspriterfileattributewrapper.cpp │ ├── pugixmlspriterfileattributewrapper.h │ ├── pugixmlspriterfiledocumentwrapper.cpp │ ├── pugixmlspriterfiledocumentwrapper.h │ ├── pugixmlspriterfileelementwrapper.cpp │ ├── pugixmlspriterfileelementwrapper.h │ ├── sfmlatlasfile.cpp │ ├── sfmlatlasfile.h │ ├── sfmlboneinstanceinfo.cpp │ ├── sfmlboneinstanceinfo.h │ ├── sfmlboxinstanceinfo.cpp │ ├── sfmlboxinstanceinfo.h │ ├── sfmlimagefile.cpp │ ├── sfmlimagefile.h │ ├── sfmlpointinstanceinfo.cpp │ ├── sfmlpointinstanceinfo.h │ ├── sfmlsoundfile.cpp │ ├── sfmlsoundfile.h │ ├── sfmlsoundobjectinforeference.cpp │ ├── sfmlsoundobjectinforeference.h │ ├── tinyxmlspriterfileattributewrapper.cpp │ ├── tinyxmlspriterfileattributewrapper.h │ ├── tinyxmlspriterfiledocumentwrapper.cpp │ ├── tinyxmlspriterfiledocumentwrapper.h │ ├── tinyxmlspriterfileelementwrapper.cpp │ └── tinyxmlspriterfileelementwrapper.h ├── nlohmann-json ├── CMakeLists.txt └── json.hpp ├── pugixml ├── CMakeLists.txt ├── pugiconfig.hpp ├── pugixml.cpp └── pugixml.hpp ├── spriterengine ├── CMakeLists.txt ├── animation │ ├── animation.cpp │ ├── animation.h │ ├── animationinstance.cpp │ ├── animationinstance.h │ ├── mainlinekey.cpp │ ├── mainlinekey.h │ ├── mainlinekeyinstance.cpp │ └── mainlinekeyinstance.h ├── charactermap │ ├── charactermap.cpp │ ├── charactermap.h │ ├── charactermapinstruction.cpp │ ├── charactermapinstruction.h │ └── charactermapinterface.h ├── entity │ ├── entity.cpp │ ├── entity.h │ ├── entityinstance.cpp │ ├── entityinstance.h │ ├── entityinstancedata.cpp │ ├── entityinstancedata.h │ ├── object.cpp │ └── object.h ├── file │ ├── file.cpp │ ├── file.h │ ├── filereference.cpp │ └── filereference.h ├── global │ ├── atlas.h │ ├── global.h │ ├── settings.cpp │ └── settings.h ├── loading │ ├── loader.cpp │ ├── loader.h │ ├── loadinghelpers.cpp │ ├── loadinghelpers.h │ ├── spriterdocumentloader.cpp │ └── spriterdocumentloader.h ├── model │ ├── spritermodel.cpp │ └── spritermodel.h ├── objectinfo │ ├── angleinfo.cpp │ ├── angleinfo.h │ ├── boneinstanceinfo.cpp │ ├── boneinstanceinfo.h │ ├── boneobjectinfo.cpp │ ├── boneobjectinfo.h │ ├── boxinstanceinfo.cpp │ ├── boxinstanceinfo.h │ ├── boxobjectinfo.cpp │ ├── boxobjectinfo.h │ ├── entityobjectinfo.cpp │ ├── entityobjectinfo.h │ ├── eventobjectinfo.cpp │ ├── eventobjectinfo.h │ ├── intvariableinfo.cpp │ ├── intvariableinfo.h │ ├── pointinstanceinfo.cpp │ ├── pointinstanceinfo.h │ ├── pointobjectinfo.cpp │ ├── pointobjectinfo.h │ ├── realvariableinfo.cpp │ ├── realvariableinfo.h │ ├── soundobjectinfo.cpp │ ├── soundobjectinfo.h │ ├── spriteobjectinfo.cpp │ ├── spriteobjectinfo.h │ ├── stringvariableinfo.cpp │ ├── stringvariableinfo.h │ ├── stringvariableinforeference.cpp │ ├── stringvariableinforeference.h │ ├── taglist.cpp │ ├── taglist.h │ ├── tagobjectinfo.cpp │ ├── tagobjectinfo.h │ ├── tagobjectinforeference.cpp │ ├── tagobjectinforeference.h │ ├── triggerobjectinfo.cpp │ ├── triggerobjectinfo.h │ ├── universalobjectinterface.cpp │ └── universalobjectinterface.h ├── objectref │ ├── boneref.cpp │ ├── boneref.h │ ├── bonerefinstance.cpp │ ├── bonerefinstance.h │ ├── entityref.cpp │ ├── entityref.h │ ├── entityrefinstance.cpp │ ├── entityrefinstance.h │ ├── objectref.cpp │ ├── objectref.h │ ├── objectrefinstance.cpp │ ├── objectrefinstance.h │ ├── spriteref.cpp │ ├── spriteref.h │ ├── spriterefinstance.cpp │ ├── spriterefinstance.h │ ├── transformprocessor.cpp │ └── transformprocessor.h ├── override │ ├── atlasfile.cpp │ ├── atlasfile.h │ ├── filefactory.cpp │ ├── filefactory.h │ ├── imagefile.cpp │ ├── imagefile.h │ ├── objectfactory.cpp │ ├── objectfactory.h │ ├── soundfile.cpp │ ├── soundfile.h │ ├── soundobjectinforeference.cpp │ ├── soundobjectinforeference.h │ ├── spriterfileattributewrapper.cpp │ ├── spriterfileattributewrapper.h │ ├── spriterfiledocumentwrapper.cpp │ ├── spriterfiledocumentwrapper.h │ ├── spriterfileelementwrapper.cpp │ └── spriterfileelementwrapper.h ├── spriterengine.h ├── timeinfo │ ├── beziereasingcurve.cpp │ ├── beziereasingcurve.h │ ├── cubiceasingcurve.cpp │ ├── cubiceasingcurve.h │ ├── easingcurveinterface.cpp │ ├── easingcurveinterface.h │ ├── instanteasingcurve.cpp │ ├── instanteasingcurve.h │ ├── lineareasingcurve.cpp │ ├── lineareasingcurve.h │ ├── quadraticeasingcurve.cpp │ ├── quadraticeasingcurve.h │ ├── quarticeasingcurve.cpp │ ├── quarticeasingcurve.h │ ├── quinticeasingcurve.cpp │ ├── quinticeasingcurve.h │ ├── timeinfo.cpp │ └── timeinfo.h ├── timeline │ ├── proxytimelinekey.cpp │ ├── proxytimelinekey.h │ ├── soundtimelineinstance.cpp │ ├── soundtimelineinstance.h │ ├── tagtimelineinstance.cpp │ ├── tagtimelineinstance.h │ ├── timeline.cpp │ ├── timeline.h │ ├── timelineinstance.cpp │ ├── timelineinstance.h │ ├── timelinekey.cpp │ ├── timelinekey.h │ ├── triggertimelineinstance.cpp │ ├── triggertimelineinstance.h │ ├── variabletimelineinstance.cpp │ └── variabletimelineinstance.h └── variable │ ├── variable.cpp │ ├── variable.h │ ├── variablecontainer.cpp │ ├── variablecontainer.h │ ├── variableinstancenameandidmap.cpp │ └── variableinstancenameandidmap.h └── tinyxml2 ├── CMakeLists.txt ├── license.txt ├── tinyxml2.cpp └── tinyxml2.h /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Visual Studio 3 | ################# 4 | 5 | ## Ignore Visual Studio temporary files, build results, and 6 | ## files generated by popular Visual Studio add-ons. 7 | 8 | # User-specific files 9 | *.suo 10 | *.user 11 | *.sln.docstates 12 | 13 | # Build results 14 | 15 | [Dd]ebug/ 16 | [Rr]elease/ 17 | x64/ 18 | build/ 19 | [Bb]in/ 20 | [Oo]bj/ 21 | 22 | # MSTest test Results 23 | [Tt]est[Rr]esult*/ 24 | [Bb]uild[Ll]og.* 25 | 26 | *_i.c 27 | *_p.c 28 | *.ilk 29 | *.meta 30 | *.obj 31 | *.pch 32 | *.pdb 33 | *.pgc 34 | *.pgd 35 | *.rsp 36 | *.sbr 37 | *.tlb 38 | *.tli 39 | *.tlh 40 | *.tmp 41 | *.tmp_proj 42 | *.log 43 | *.vspscc 44 | *.vssscc 45 | .builds 46 | *.pidb 47 | *.log 48 | *.scc 49 | 50 | # Visual C++ cache files 51 | ipch/ 52 | *.aps 53 | *.ncb 54 | *.opensdf 55 | *.sdf 56 | *.cachefile 57 | 58 | # Visual Studio profiler 59 | *.psess 60 | *.vsp 61 | *.vspx 62 | 63 | # Log Files 64 | *.tlog -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(SPRITER_PLUS_PLUS) 2 | cmake_minimum_required(VERSION 2.8 FATAL_ERROR) 3 | 4 | if(${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR}) 5 | message(FATAL_ERROR "In-tree build attempt detected, aborting. Set your build dir outside your source dir, delete CMakeCache.txt from source root and try again.") 6 | endif() 7 | 8 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) 9 | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) 10 | 11 | if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") 12 | # using Clang or AppleClang 13 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-sign-compare -Wno-reorder -Wno-unused-variable") 14 | elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") 15 | # using GCC 16 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-sign-compare -Wno-reorder -Wno-unused-variable") 17 | elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") 18 | # using Intel C++ 19 | elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") 20 | # using Visual Studio C++ 21 | endif() 22 | 23 | option(SKIP_EXAMPLES "Only build the spriterengine and skip all examples" OFF) 24 | 25 | file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Release/GreyGuy 26 | ${CMAKE_CURRENT_SOURCE_DIR}/Release/GreyGuyAtlas 27 | ${CMAKE_CURRENT_SOURCE_DIR}/Release/PT-Sans 28 | DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) 29 | 30 | add_subdirectory(spriterengine) 31 | 32 | if(NOT SKIP_EXAMPLES) 33 | add_subdirectory(pugixml) 34 | add_subdirectory(tinyxml2) 35 | add_subdirectory(nlohmann-json) 36 | add_subdirectory(example) 37 | endif(NOT SKIP_EXAMPLES) 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | SpriterPlusPlus is released under the zlib license: 2 | 3 | This software is provided 'as-is', without any express or implied 4 | warranty. In no event will the authors be held liable for any 5 | damages arising from the use of this software. 6 | 7 | Permission is granted to anyone to use this software for any 8 | purpose, including commercial applications, and to alter it and 9 | redistribute it freely, subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must 12 | not claim that you wrote the original software. If you use this 13 | software in a product, an acknowledgment in the product documentation 14 | would be appreciated but is not required. 15 | 2. Altered source versions must be plainly marked as such, and 16 | must not be misrepresented as being the original software. 17 | 3. This notice may not be removed or altered from any source 18 | distribution. 19 | 20 | 21 | 22 | TinyXml, Sfml, and the PT-Sans fonts 23 | have their respective licenses 24 | within their respective directories 25 | -------------------------------------------------------------------------------- /Release/GreyGuy/Copyright_Information_Please_Read.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/Copyright_Information_Please_Read.txt -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_arm_idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_arm_idle.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_arm_idle_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_arm_idle_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_arm_slide_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_arm_slide_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_arm_throw_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_arm_throw_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_arm_walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_arm_walk.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_forarm_idle_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_forarm_idle_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_forarm_idle_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_forarm_idle_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_forarm_jump_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_forarm_jump_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_forarm_side_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_forarm_side_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_forarm_under_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_forarm_under_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/p_forarm_walk_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/p_forarm_walk_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/arms/throw_blur_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/arms/throw_blur_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/feet/p_foot_hit_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/feet/p_foot_hit_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/feet/p_foot_hot_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/feet/p_foot_hot_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/feet/p_foot_idle_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/feet/p_foot_idle_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/feet/p_foot_jump_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/feet/p_foot_jump_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/feet/p_foot_walk_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/feet/p_foot_walk_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/feet/p_foot_walk_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/feet/p_foot_walk_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/guns/hand-gun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/guns/hand-gun.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_1.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_2.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_a_edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_a_edge.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_b.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_c.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_edge_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_edge_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_float_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_float_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_hang_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_hang_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_hang_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_hang_1.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_hang_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_hang_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_hit_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_hit_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_hit_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_hit_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_idle_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_idle_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_jump_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_jump_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_jump_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_jump_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_prepunch_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_prepunch_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_prepunch_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_prepunch_x.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_punch_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_punch_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_push_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_push_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_push_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_push_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_slide_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_slide_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_hand_throw_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_hand_throw_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/hands/p_punch_blur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/hands/p_punch_blur.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_blink_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_blink_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_blink_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_blink_1.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_concern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_concern.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_concern_blink_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_concern_blink_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_concern_blink_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_concern_blink_1.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_die.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_die.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_hurt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_hurt.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_idle.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_idle_blink_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_idle_blink_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_idle_blink_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_idle_blink_1.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_push.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_push.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_turn_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_turn_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/head/p_head_walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/head/p_head_walk.png -------------------------------------------------------------------------------- /Release/GreyGuy/legs/p_leg_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/legs/p_leg_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/legs/p_leg_idle_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/legs/p_leg_idle_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/legs/p_leg_walk_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/legs/p_leg_walk_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/legs/p_pelvis_die.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/legs/p_pelvis_die.png -------------------------------------------------------------------------------- /Release/GreyGuy/legs/p_pelvis_idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/legs/p_pelvis_idle.png -------------------------------------------------------------------------------- /Release/GreyGuy/legs/p_pelvis_walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/legs/p_pelvis_walk.png -------------------------------------------------------------------------------- /Release/GreyGuy/legs/p_thigh_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/legs/p_thigh_a.png -------------------------------------------------------------------------------- /Release/GreyGuy/legs/p_thigh_idle_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/legs/p_thigh_idle_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/legs/p_thigh_walk_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/legs/p_thigh_walk_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/torso/p_torso_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/torso/p_torso_front.png -------------------------------------------------------------------------------- /Release/GreyGuy/torso/p_torso_idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/torso/p_torso_idle.png -------------------------------------------------------------------------------- /Release/GreyGuy/torso/p_torso_jump.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/torso/p_torso_jump.png -------------------------------------------------------------------------------- /Release/GreyGuy/torso/p_torso_punch_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/torso/p_torso_punch_0.png -------------------------------------------------------------------------------- /Release/GreyGuy/torso/p_torso_walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuy/torso/p_torso_walk.png -------------------------------------------------------------------------------- /Release/GreyGuyAtlas/GreyGuy_arms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuyAtlas/GreyGuy_arms.png -------------------------------------------------------------------------------- /Release/GreyGuyAtlas/GreyGuy_feet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuyAtlas/GreyGuy_feet.png -------------------------------------------------------------------------------- /Release/GreyGuyAtlas/GreyGuy_hands.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuyAtlas/GreyGuy_hands.png -------------------------------------------------------------------------------- /Release/GreyGuyAtlas/GreyGuy_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuyAtlas/GreyGuy_head.png -------------------------------------------------------------------------------- /Release/GreyGuyAtlas/GreyGuy_legs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuyAtlas/GreyGuy_legs.png -------------------------------------------------------------------------------- /Release/GreyGuyAtlas/GreyGuy_torso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/GreyGuyAtlas/GreyGuy_torso.png -------------------------------------------------------------------------------- /Release/PT-Sans/PTC55F.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/PT-Sans/PTC55F.ttf -------------------------------------------------------------------------------- /Release/SpriterPlusPlus.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/SpriterPlusPlus.exe -------------------------------------------------------------------------------- /Release/SpriterPlusPlus.tlog/CL.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/SpriterPlusPlus.tlog/CL.command.1.tlog -------------------------------------------------------------------------------- /Release/SpriterPlusPlus.tlog/CL.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/SpriterPlusPlus.tlog/CL.read.1.tlog -------------------------------------------------------------------------------- /Release/SpriterPlusPlus.tlog/CL.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/SpriterPlusPlus.tlog/CL.write.1.tlog -------------------------------------------------------------------------------- /Release/SpriterPlusPlus.tlog/SpriterPlusPlus.lastbuildstate: -------------------------------------------------------------------------------- 1 | #TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit 2 | Release|Win32|C:\Google Drive\SpriterPlusPlus\| 3 | -------------------------------------------------------------------------------- /Release/SpriterPlusPlus.tlog/link.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/SpriterPlusPlus.tlog/link.command.1.tlog -------------------------------------------------------------------------------- /Release/SpriterPlusPlus.tlog/link.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/SpriterPlusPlus.tlog/link.read.1.tlog -------------------------------------------------------------------------------- /Release/SpriterPlusPlus.tlog/link.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/SpriterPlusPlus.tlog/link.write.1.tlog -------------------------------------------------------------------------------- /Release/sfml-audio-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/sfml-audio-2.dll -------------------------------------------------------------------------------- /Release/sfml-graphics-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/sfml-graphics-2.dll -------------------------------------------------------------------------------- /Release/sfml-system-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/sfml-system-2.dll -------------------------------------------------------------------------------- /Release/sfml-window-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/Release/sfml-window-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/openal32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/openal32.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-audio-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-audio-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-audio-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-audio-d-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-graphics-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-graphics-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-graphics-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-graphics-d-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-network-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-network-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-network-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-network-d-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-system-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-system-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-system-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-system-d-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-window-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-window-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/bin/sfml-window-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/bin/sfml-window-d-2.dll -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/bc_s.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/bdwn.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1AlResource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1AlResource.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1CircleShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1CircleShape.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Context.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1ConvexShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1ConvexShape.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Drawable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Drawable.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1FileInputStream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1FileInputStream.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Ftp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Ftp.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Ftp_1_1DirectoryResponse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Ftp_1_1DirectoryResponse.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Ftp_1_1ListingResponse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Ftp_1_1ListingResponse.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Ftp_1_1Response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Ftp_1_1Response.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1GlResource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1GlResource.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Http.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1InputSoundFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1InputSoundFile.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1InputStream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1InputStream.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Lock.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1MemoryInputStream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1MemoryInputStream.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Music.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Mutex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Mutex.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1NonCopyable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1NonCopyable.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1OutputSoundFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1OutputSoundFile.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1RectangleShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1RectangleShape.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1RenderTarget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1RenderTarget.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1RenderTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1RenderTexture.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1RenderWindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1RenderWindow.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Shader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Shader.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Shape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Shape.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Socket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Socket.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Sound.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1SoundBuffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1SoundBuffer.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1SoundBufferRecorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1SoundBufferRecorder.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1SoundRecorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1SoundRecorder.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1SoundSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1SoundSource.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1SoundStream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1SoundStream.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Sprite.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1TcpListener.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1TcpListener.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1TcpSocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1TcpSocket.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Text.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Texture.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Thread.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Thread.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1ThreadLocal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1ThreadLocal.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1ThreadLocalPtr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1ThreadLocalPtr.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Transformable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Transformable.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1UdpSocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1UdpSocket.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1VertexArray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1VertexArray.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/classsf_1_1Window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/classsf_1_1Window.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/closed.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/doxygen.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2blank.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2doc.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2folderclosed.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2folderopen.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2lastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2lastnode.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2link.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2mlastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2mlastnode.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2mnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2mnode.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2node.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2plastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2plastnode.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2pnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2pnode.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2splitbar.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/ftv2vertline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/ftv2vertline.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/nav_f.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/nav_g.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/nav_h.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/open.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/sync_off.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/sync_on.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/tab_a.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/tab_b.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/tab_h.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/html/tab_s.png -------------------------------------------------------------------------------- /SFML-2.3.2/doc/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | -------------------------------------------------------------------------------- /SFML-2.3.2/doc/sfml.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/doc/sfml.chm -------------------------------------------------------------------------------- /SFML-2.3.2/examples/ftp/ftp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/ftp/ftp.exe -------------------------------------------------------------------------------- /SFML-2.3.2/examples/opengl/opengl.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/opengl/opengl.exe -------------------------------------------------------------------------------- /SFML-2.3.2/examples/opengl/resources/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/opengl/resources/background.jpg -------------------------------------------------------------------------------- /SFML-2.3.2/examples/opengl/resources/sansation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/opengl/resources/sansation.ttf -------------------------------------------------------------------------------- /SFML-2.3.2/examples/opengl/resources/texture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/opengl/resources/texture.jpg -------------------------------------------------------------------------------- /SFML-2.3.2/examples/pong/pong.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/pong/pong.exe -------------------------------------------------------------------------------- /SFML-2.3.2/examples/pong/resources/ball.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/pong/resources/ball.wav -------------------------------------------------------------------------------- /SFML-2.3.2/examples/pong/resources/sansation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/pong/resources/sansation.ttf -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/shader/resources/background.jpg -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/blink.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texture; 2 | uniform float blink_alpha; 3 | 4 | void main() 5 | { 6 | vec4 pixel = gl_Color; 7 | pixel.a = blink_alpha; 8 | gl_FragColor = pixel; 9 | } 10 | -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/blur.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texture; 2 | uniform float blur_radius; 3 | 4 | void main() 5 | { 6 | vec2 offx = vec2(blur_radius, 0.0); 7 | vec2 offy = vec2(0.0, blur_radius); 8 | 9 | vec4 pixel = texture2D(texture, gl_TexCoord[0].xy) * 4.0 + 10 | texture2D(texture, gl_TexCoord[0].xy - offx) * 2.0 + 11 | texture2D(texture, gl_TexCoord[0].xy + offx) * 2.0 + 12 | texture2D(texture, gl_TexCoord[0].xy - offy) * 2.0 + 13 | texture2D(texture, gl_TexCoord[0].xy + offy) * 2.0 + 14 | texture2D(texture, gl_TexCoord[0].xy - offx - offy) * 1.0 + 15 | texture2D(texture, gl_TexCoord[0].xy - offx + offy) * 1.0 + 16 | texture2D(texture, gl_TexCoord[0].xy + offx - offy) * 1.0 + 17 | texture2D(texture, gl_TexCoord[0].xy + offx + offy) * 1.0; 18 | 19 | gl_FragColor = gl_Color * (pixel / 16.0); 20 | } 21 | -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/devices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/shader/resources/devices.png -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/edge.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texture; 2 | uniform float edge_threshold; 3 | 4 | void main() 5 | { 6 | const float offset = 1.0 / 512.0; 7 | vec2 offx = vec2(offset, 0.0); 8 | vec2 offy = vec2(0.0, offset); 9 | 10 | vec4 hEdge = texture2D(texture, gl_TexCoord[0].xy - offy) * -2.0 + 11 | texture2D(texture, gl_TexCoord[0].xy + offy) * 2.0 + 12 | texture2D(texture, gl_TexCoord[0].xy - offx - offy) * -1.0 + 13 | texture2D(texture, gl_TexCoord[0].xy - offx + offy) * 1.0 + 14 | texture2D(texture, gl_TexCoord[0].xy + offx - offy) * -1.0 + 15 | texture2D(texture, gl_TexCoord[0].xy + offx + offy) * 1.0; 16 | 17 | vec4 vEdge = texture2D(texture, gl_TexCoord[0].xy - offx) * 2.0 + 18 | texture2D(texture, gl_TexCoord[0].xy + offx) * -2.0 + 19 | texture2D(texture, gl_TexCoord[0].xy - offx - offy) * 1.0 + 20 | texture2D(texture, gl_TexCoord[0].xy - offx + offy) * -1.0 + 21 | texture2D(texture, gl_TexCoord[0].xy + offx - offy) * 1.0 + 22 | texture2D(texture, gl_TexCoord[0].xy + offx + offy) * -1.0; 23 | 24 | vec3 result = sqrt(hEdge.rgb * hEdge.rgb + vEdge.rgb * vEdge.rgb); 25 | float edge = length(result); 26 | vec4 pixel = gl_Color * texture2D(texture, gl_TexCoord[0].xy); 27 | if (edge > (edge_threshold * 8.0)) 28 | pixel.rgb = vec3(0.0, 0.0, 0.0); 29 | else 30 | pixel.a = edge_threshold; 31 | gl_FragColor = pixel; 32 | } 33 | -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/pixelate.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texture; 2 | uniform float pixel_threshold; 3 | 4 | void main() 5 | { 6 | float factor = 1.0 / (pixel_threshold + 0.001); 7 | vec2 pos = floor(gl_TexCoord[0].xy * factor + 0.5) / factor; 8 | gl_FragColor = texture2D(texture, pos) * gl_Color; 9 | } 10 | -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/sansation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/shader/resources/sansation.ttf -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/sfml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/shader/resources/sfml.png -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/storm.vert: -------------------------------------------------------------------------------- 1 | uniform vec2 storm_position; 2 | uniform float storm_total_radius; 3 | uniform float storm_inner_radius; 4 | 5 | void main() 6 | { 7 | vec4 vertex = gl_ModelViewMatrix * gl_Vertex; 8 | vec2 offset = vertex.xy - storm_position; 9 | float len = length(offset); 10 | if (len < storm_total_radius) 11 | { 12 | float push_distance = storm_inner_radius + len / storm_total_radius * (storm_total_radius - storm_inner_radius); 13 | vertex.xy = storm_position + normalize(offset) * push_distance; 14 | } 15 | 16 | gl_Position = gl_ProjectionMatrix * vertex; 17 | gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; 18 | gl_FrontColor = gl_Color; 19 | } 20 | -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/text-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/shader/resources/text-background.png -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/resources/wave.vert: -------------------------------------------------------------------------------- 1 | uniform float wave_phase; 2 | uniform vec2 wave_amplitude; 3 | 4 | void main() 5 | { 6 | vec4 vertex = gl_Vertex; 7 | vertex.x += cos(gl_Vertex.y * 0.02 + wave_phase * 3.8) * wave_amplitude.x 8 | + sin(gl_Vertex.y * 0.02 + wave_phase * 6.3) * wave_amplitude.x * 0.3; 9 | vertex.y += sin(gl_Vertex.x * 0.02 + wave_phase * 2.4) * wave_amplitude.y 10 | + cos(gl_Vertex.x * 0.02 + wave_phase * 5.2) * wave_amplitude.y * 0.3; 11 | 12 | gl_Position = gl_ModelViewProjectionMatrix * vertex; 13 | gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; 14 | gl_FrontColor = gl_Color; 15 | } 16 | -------------------------------------------------------------------------------- /SFML-2.3.2/examples/shader/shader.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/shader/shader.exe -------------------------------------------------------------------------------- /SFML-2.3.2/examples/sockets/sockets.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/sockets/sockets.exe -------------------------------------------------------------------------------- /SFML-2.3.2/examples/sound-capture/sound-capture.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/sound-capture/sound-capture.exe -------------------------------------------------------------------------------- /SFML-2.3.2/examples/sound/resources/canary.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/sound/resources/canary.wav -------------------------------------------------------------------------------- /SFML-2.3.2/examples/sound/resources/ding.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/sound/resources/ding.flac -------------------------------------------------------------------------------- /SFML-2.3.2/examples/sound/resources/orchestral.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/sound/resources/orchestral.ogg -------------------------------------------------------------------------------- /SFML-2.3.2/examples/sound/sound.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/sound/sound.exe -------------------------------------------------------------------------------- /SFML-2.3.2/examples/voip/VoIP.cpp: -------------------------------------------------------------------------------- 1 | 2 | //////////////////////////////////////////////////////////// 3 | // Headers 4 | //////////////////////////////////////////////////////////// 5 | #include 6 | #include 7 | #include 8 | 9 | 10 | //////////////////////////////////////////////////////////// 11 | // Function prototypes 12 | // (I'm too lazy to put them into separate headers...) 13 | //////////////////////////////////////////////////////////// 14 | void doClient(unsigned short port); 15 | void doServer(unsigned short port); 16 | 17 | 18 | //////////////////////////////////////////////////////////// 19 | /// Entry point of application 20 | /// 21 | /// \return Application exit code 22 | /// 23 | //////////////////////////////////////////////////////////// 24 | int main() 25 | { 26 | // Choose a random port for opening sockets (ports < 1024 are reserved) 27 | const unsigned short port = 2435; 28 | 29 | // Client or server ? 30 | char who; 31 | std::cout << "Do you want to be a server ('s') or a client ('c')? "; 32 | std::cin >> who; 33 | 34 | if (who == 's') 35 | { 36 | // Run as a server 37 | doServer(port); 38 | } 39 | else 40 | { 41 | // Run as a client 42 | doClient(port); 43 | } 44 | 45 | // Wait until the user presses 'enter' key 46 | std::cout << "Press enter to exit..." << std::endl; 47 | std::cin.ignore(10000, '\n'); 48 | 49 | return EXIT_SUCCESS; 50 | } 51 | -------------------------------------------------------------------------------- /SFML-2.3.2/examples/voip/voip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/voip/voip.exe -------------------------------------------------------------------------------- /SFML-2.3.2/examples/win32/resources/image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/win32/resources/image1.jpg -------------------------------------------------------------------------------- /SFML-2.3.2/examples/win32/resources/image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/win32/resources/image2.jpg -------------------------------------------------------------------------------- /SFML-2.3.2/examples/win32/win32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/win32/win32.exe -------------------------------------------------------------------------------- /SFML-2.3.2/examples/window/window.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/examples/window/window.exe -------------------------------------------------------------------------------- /SFML-2.3.2/lib/flac.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/flac.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/freetype.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/freetype.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/jpeg.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/jpeg.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/ogg.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/ogg.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/openal32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/openal32.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-audio-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-audio-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-audio-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-audio-s-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-audio-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-audio-s.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-audio.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-audio.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-graphics-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-graphics-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-graphics-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-graphics-s-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-graphics-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-graphics-s.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-graphics.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-graphics.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-main-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-main-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-main.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-main.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-network-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-network-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-network-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-network-s-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-network-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-network-s.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-network.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-network.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-system-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-system-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-system-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-system-s-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-system-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-system-s.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-system.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-system.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-window-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-window-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-window-s-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-window-s-d.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-window-s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-window-s.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/sfml-window.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/sfml-window.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/vorbis.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/vorbis.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/vorbisenc.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/vorbisenc.lib -------------------------------------------------------------------------------- /SFML-2.3.2/lib/vorbisfile.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SFML-2.3.2/lib/vorbisfile.lib -------------------------------------------------------------------------------- /SFML-2.3.2/license.txt: -------------------------------------------------------------------------------- 1 | SFML 2 | ---- 3 | 4 | SFML - Copyright (C) 2007-2015 Laurent Gomila - laurent@sfml-dev.org 5 | 6 | This software is provided 'as-is', without any express or 7 | implied warranty. In no event will the authors be held 8 | liable for any damages arising from the use of this software. 9 | 10 | Permission is granted to anyone to use this software for any purpose, 11 | including commercial applications, and to alter it and redistribute 12 | it freely, subject to the following restrictions: 13 | 14 | 1. The origin of this software must not be misrepresented; 15 | you must not claim that you wrote the original software. 16 | If you use this software in a product, an acknowledgment 17 | in the product documentation would be appreciated but 18 | is not required. 19 | 20 | 2. Altered source versions must be plainly marked as such, 21 | and must not be misrepresented as being the original software. 22 | 23 | 3. This notice may not be removed or altered from any 24 | source distribution. 25 | 26 | 27 | 28 | External libraries used by SFML 29 | ------------------------------- 30 | 31 | * OpenAL-Soft is under the LGPL license 32 | * libjpeg is public domain 33 | * stb_image and stb_image_write are public domain 34 | * freetype is under the FreeType license or the GPL license 35 | * libogg is under the BSD license 36 | * libvorbis is under the BSD license 37 | * libflac is under the BSD license 38 | -------------------------------------------------------------------------------- /SpriterPlusPlus License.txt: -------------------------------------------------------------------------------- 1 | SpriterPlusPlus is released under the zlib license: 2 | 3 | This software is provided 'as-is', without any express or implied 4 | warranty. In no event will the authors be held liable for any 5 | damages arising from the use of this software. 6 | 7 | Permission is granted to anyone to use this software for any 8 | purpose, including commercial applications, and to alter it and 9 | redistribute it freely, subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must 12 | not claim that you wrote the original software. If you use this 13 | software in a product, an acknowledgment in the product documentation 14 | would be appreciated but is not required. 15 | 2. Altered source versions must be plainly marked as such, and 16 | must not be misrepresented as being the original software. 17 | 3. This notice may not be removed or altered from any source 18 | distribution. 19 | -------------------------------------------------------------------------------- /SpriterPlusPlus.sdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucidspriter/SpriterPlusPlus/8fb550e1633036b42acd1cce0e05cfe60a3041c0/SpriterPlusPlus.sdf -------------------------------------------------------------------------------- /SpriterPlusPlus.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SpriterPlusPlus", "SpriterPlusPlus.vcxproj", "{EC902F13-1E54-4DD0-A887-0A3A5BC1CC29}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {EC902F13-1E54-4DD0-A887-0A3A5BC1CC29}.Debug|x64.ActiveCfg = Debug|x64 17 | {EC902F13-1E54-4DD0-A887-0A3A5BC1CC29}.Debug|x64.Build.0 = Debug|x64 18 | {EC902F13-1E54-4DD0-A887-0A3A5BC1CC29}.Debug|x86.ActiveCfg = Debug|Win32 19 | {EC902F13-1E54-4DD0-A887-0A3A5BC1CC29}.Debug|x86.Build.0 = Debug|Win32 20 | {EC902F13-1E54-4DD0-A887-0A3A5BC1CC29}.Release|x64.ActiveCfg = Release|x64 21 | {EC902F13-1E54-4DD0-A887-0A3A5BC1CC29}.Release|x64.Build.0 = Release|x64 22 | {EC902F13-1E54-4DD0-A887-0A3A5BC1CC29}.Release|x86.ActiveCfg = Release|Win32 23 | {EC902F13-1E54-4DD0-A887-0A3A5BC1CC29}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /example/override/examplefilefactory.cpp: -------------------------------------------------------------------------------- 1 | #include "examplefilefactory.h" 2 | 3 | #include "../../spriterengine/override/imagefile.h" 4 | #include "../../spriterengine/override/soundfile.h" 5 | 6 | // #define __USE_PUGIXML 7 | #ifndef __USE_PUGIXML 8 | #include "tinyxmlspriterfiledocumentwrapper.h" 9 | #else 10 | #include "pugixmlspriterfiledocumentwrapper.h" 11 | #endif 12 | 13 | #include "jsonspriterfiledocumentwrapper.h" 14 | 15 | #include "sfmlimagefile.h" 16 | #include "sfmlatlasfile.h" 17 | #include "sfmlsoundfile.h" 18 | 19 | namespace SpriterEngine 20 | { 21 | 22 | ExampleFileFactory::ExampleFileFactory(sf::RenderWindow *validRenderWindow) : 23 | renderWindow(validRenderWindow) 24 | { 25 | } 26 | 27 | ImageFile * ExampleFileFactory::newImageFile(const std::string &initialFilePath, point initialDefaultPivot, atlasdata atlasData) 28 | { 29 | return new SfmlImageFile(initialFilePath, initialDefaultPivot, renderWindow); 30 | } 31 | 32 | AtlasFile *ExampleFileFactory::newAtlasFile(const std::string &initialFilePath) 33 | { 34 | return new SfmlAtlasFile(initialFilePath); 35 | 36 | } 37 | 38 | SoundFile * ExampleFileFactory::newSoundFile(const std::string & initialFilePath) 39 | { 40 | return new SfmlSoundFile(initialFilePath); 41 | } 42 | 43 | SpriterFileDocumentWrapper * ExampleFileFactory::newScmlDocumentWrapper() 44 | { 45 | #ifndef __USE_PUGIXML 46 | return new TinyXmlSpriterFileDocumentWrapper(); 47 | #else 48 | return new PugiXmlSpriterFileDocumentWrapper(); 49 | #endif 50 | } 51 | 52 | SpriterFileDocumentWrapper *ExampleFileFactory::newSconDocumentWrapper() 53 | { 54 | return new JSONSpriterFileDocumentWrapper(); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /example/override/examplefilefactory.h: -------------------------------------------------------------------------------- 1 | #ifndef EXAMPLEFILEFACTORY_H 2 | #define EXAMPLEFILEFACTORY_H 3 | 4 | #include "../../spriterengine/override/filefactory.h" 5 | 6 | #include "SFML/Graphics.hpp" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class ExampleFileFactory : public FileFactory 12 | { 13 | public: 14 | ExampleFileFactory(sf::RenderWindow *validRenderWindow); 15 | 16 | ImageFile *newImageFile(const std::string &initialFilePath, point initialDefaultPivot, atlasdata atlasData) override; 17 | 18 | AtlasFile *newAtlasFile(const std::string &initialFilePath) override; 19 | 20 | SoundFile *newSoundFile(const std::string &initialFilePath) override; 21 | 22 | SpriterFileDocumentWrapper *newScmlDocumentWrapper() override; 23 | 24 | SpriterFileDocumentWrapper *newSconDocumentWrapper() override; 25 | 26 | private: 27 | sf::RenderWindow *renderWindow; 28 | }; 29 | 30 | } 31 | 32 | #endif // EXAMPLEFILEFACTORY_H 33 | -------------------------------------------------------------------------------- /example/override/exampleobjectfactory.cpp: -------------------------------------------------------------------------------- 1 | #include "exampleobjectfactory.h" 2 | 3 | #include "sfmlpointinstanceinfo.h" 4 | #include "sfmlboxinstanceinfo.h" 5 | #include "sfmlboneinstanceinfo.h" 6 | #include "sfmlsoundobjectinforeference.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | ExampleObjectFactory::ExampleObjectFactory(sf::RenderWindow *validRenderWindow) : 12 | renderWindow(validRenderWindow) 13 | { 14 | } 15 | 16 | PointInstanceInfo * ExampleObjectFactory::newPointInstanceInfo() 17 | { 18 | return new SfmlPointInstanceInfo(renderWindow); 19 | } 20 | 21 | BoxInstanceInfo * ExampleObjectFactory::newBoxInstanceInfo(point size) 22 | { 23 | return new SfmlBoxInstanceInfo(size, renderWindow); 24 | } 25 | 26 | BoneInstanceInfo * ExampleObjectFactory::newBoneInstanceInfo(point size) 27 | { 28 | return new SfmlBoneInstanceInfo(size, renderWindow); 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /example/override/exampleobjectfactory.h: -------------------------------------------------------------------------------- 1 | #ifndef EXAMPLEOBJECTFACTORY_H 2 | #define EXAMPLEOBJECTFACTORY_H 3 | 4 | #include "SFML/Graphics/RenderWindow.hpp" 5 | 6 | #include "../../spriterengine/override/objectfactory.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class ExampleObjectFactory : public ObjectFactory 12 | { 13 | public: 14 | ExampleObjectFactory(sf::RenderWindow *validRenderWindow); 15 | 16 | PointInstanceInfo *newPointInstanceInfo() override; 17 | 18 | BoxInstanceInfo *newBoxInstanceInfo(point size) override; 19 | 20 | BoneInstanceInfo *newBoneInstanceInfo(point size) override; 21 | 22 | private: 23 | sf::RenderWindow *renderWindow; 24 | }; 25 | 26 | } 27 | 28 | #endif // EXAMPLEOBJECTFACTORY_H 29 | -------------------------------------------------------------------------------- /example/override/jsonspriterfileattributewrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "jsonspriterfileattributewrapper.h" 2 | #include "jsonspriterfileelementwrapper.h" 3 | 4 | namespace SpriterEngine 5 | { 6 | JSONSpriterFileAttributeWrapper::JSONSpriterFileAttributeWrapper(JSONSpriterFileElementWrapper *parent_object, std::string name, json value): 7 | m_value(value), m_name(name), m_parent_object(parent_object) 8 | { 9 | 10 | } 11 | 12 | std::string JSONSpriterFileAttributeWrapper::getName() 13 | { 14 | return m_name; 15 | } 16 | 17 | bool JSONSpriterFileAttributeWrapper::isValid() 18 | { 19 | // The default is a null value, if this is set it's invalid 20 | return !m_value.is_null(); 21 | } 22 | 23 | real JSONSpriterFileAttributeWrapper::getRealValue() 24 | { 25 | // implicit convert 26 | return m_value; 27 | } 28 | 29 | int JSONSpriterFileAttributeWrapper::getIntValue() 30 | { 31 | // Sometimes there are strings like "2" in the scon so try stoi first. 32 | if(m_value.is_string()) { 33 | // This will throw std::invalid_argument when not a number. 34 | std::string str = m_value; 35 | return std::stoi(str); 36 | } 37 | // implicit convert 38 | return m_value; 39 | } 40 | 41 | std::string JSONSpriterFileAttributeWrapper::getStringValue() 42 | { 43 | // implicit convert 44 | return m_value; 45 | } 46 | 47 | void JSONSpriterFileAttributeWrapper::advanceToNextAttribute() 48 | { 49 | m_parent_object->advanceToNextAttribute(this); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /example/override/jsonspriterfileattributewrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef JSONSPRITERFILEATTRIBUTEWRAPPER_H 2 | #define JSONSPRITERFILEATTRIBUTEWRAPPER_H 3 | 4 | #include "../../spriterengine/override/spriterfileattributewrapper.h" 5 | #include "json.hpp" 6 | 7 | using json = nlohmann::json; 8 | 9 | namespace SpriterEngine 10 | { 11 | class JSONSpriterFileElementWrapper; 12 | 13 | class JSONSpriterFileAttributeWrapper : public SpriterFileAttributeWrapper 14 | { 15 | public: 16 | JSONSpriterFileAttributeWrapper(JSONSpriterFileElementWrapper* parent_object, std::string name = "", json value = nullptr); 17 | 18 | std::string getName() override; 19 | 20 | bool isValid() override; 21 | 22 | real getRealValue() override; 23 | int getIntValue() override; 24 | std::string getStringValue() override; 25 | 26 | void advanceToNextAttribute() override; 27 | 28 | private: 29 | json m_value; 30 | std::string m_name; 31 | JSONSpriterFileElementWrapper* m_parent_object; 32 | 33 | friend class JSONSpriterFileElementWrapper; 34 | }; 35 | 36 | } 37 | 38 | #endif // JSONSPRITERFILEATTRIBUTEWRAPPER_H 39 | -------------------------------------------------------------------------------- /example/override/jsonspriterfiledocumentwrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef JSONSPRITERFILEDOCUMENTWRAPPER_H 2 | #define JSONSPRITERFILEDOCUMENTWRAPPER_H 3 | 4 | #include "../../spriterengine/override/spriterfiledocumentwrapper.h" 5 | #include "json.hpp" 6 | 7 | using json = nlohmann::json; 8 | 9 | namespace SpriterEngine 10 | { 11 | class JSONSpriterFileDocumentWrapper : public SpriterFileDocumentWrapper 12 | { 13 | public: 14 | JSONSpriterFileDocumentWrapper(); 15 | 16 | void loadFile(std::string fileName) override; 17 | 18 | private: 19 | SpriterFileElementWrapper *newElementWrapperFromFirstElement() override; 20 | SpriterFileElementWrapper *newElementWrapperFromFirstElement(const std::string & elementName) override; 21 | 22 | json m_json; 23 | }; 24 | 25 | } 26 | 27 | #endif // JSONSPRITERFILEDOCUMENTWRAPPER_H 28 | -------------------------------------------------------------------------------- /example/override/pugixmlspriterfileattributewrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "pugixmlspriterfileattributewrapper.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | PugiXmlSpriterFileAttributeWrapper::PugiXmlSpriterFileAttributeWrapper(AttributePtr_t initialAttribute): 6 | attribute(initialAttribute) 7 | { 8 | } 9 | 10 | std::string PugiXmlSpriterFileAttributeWrapper::getName() 11 | { 12 | return attribute.name(); 13 | } 14 | 15 | bool PugiXmlSpriterFileAttributeWrapper::isValid() 16 | { 17 | return attribute; 18 | } 19 | 20 | real PugiXmlSpriterFileAttributeWrapper::getRealValue() 21 | { 22 | return attribute.as_double(); 23 | } 24 | 25 | int PugiXmlSpriterFileAttributeWrapper::getIntValue() 26 | { 27 | return attribute.as_int(); 28 | } 29 | 30 | std::string PugiXmlSpriterFileAttributeWrapper::getStringValue() 31 | { 32 | return attribute.as_string(); 33 | } 34 | 35 | void PugiXmlSpriterFileAttributeWrapper::advanceToNextAttribute() 36 | { 37 | attribute = attribute.next_attribute(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /example/override/pugixmlspriterfileattributewrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef PUGIXMLSPRITERFILEATTRIBUTEWRAPPER_H 2 | #define PUGIXMLSPRITERFILEATTRIBUTEWRAPPER_H 3 | 4 | #include "../../pugixml/pugixml.hpp" 5 | 6 | #include "../../spriterengine/override/spriterfileattributewrapper.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | class PugiXmlSpriterFileAttributeWrapper : public SpriterFileAttributeWrapper 11 | { 12 | typedef pugi::xml_attribute AttributePtr_t; 13 | 14 | public: 15 | PugiXmlSpriterFileAttributeWrapper(AttributePtr_t initialAttribute); 16 | 17 | std::string getName() override; 18 | 19 | bool isValid() override; 20 | 21 | real getRealValue() override; 22 | int getIntValue() override; 23 | std::string getStringValue() override; 24 | 25 | void advanceToNextAttribute() override; 26 | 27 | private: 28 | AttributePtr_t attribute; 29 | }; 30 | 31 | } 32 | 33 | #endif // PUGIXMLSPRITERFILEATTRIBUTEWRAPPER_H 34 | -------------------------------------------------------------------------------- /example/override/pugixmlspriterfiledocumentwrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "pugixmlspriterfiledocumentwrapper.h" 2 | 3 | #include "pugixmlspriterfileelementwrapper.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | PugiXmlSpriterFileDocumentWrapper::PugiXmlSpriterFileDocumentWrapper() 8 | { 9 | } 10 | 11 | void PugiXmlSpriterFileDocumentWrapper::loadFile(std::string fileName) 12 | { 13 | doc.load_file(fileName.c_str()); 14 | } 15 | 16 | SpriterFileElementWrapper * PugiXmlSpriterFileDocumentWrapper::newElementWrapperFromFirstElement() 17 | { 18 | return new PugiXmlSpriterFileElementWrapper(doc.first_child()); 19 | } 20 | 21 | SpriterFileElementWrapper * PugiXmlSpriterFileDocumentWrapper::newElementWrapperFromFirstElement(const std::string & elementName) 22 | { 23 | return new PugiXmlSpriterFileElementWrapper(doc.child(elementName.c_str())); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /example/override/pugixmlspriterfiledocumentwrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef PUGIXMLSPRITERFILEDOCUMENTWRAPPER_H 2 | #define PUGIXMLSPRITERFILEDOCUMENTWRAPPER_H 3 | 4 | #include "../../pugixml/pugixml.hpp" 5 | 6 | #include "../../spriterengine/override/spriterfiledocumentwrapper.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | class PugiXmlSpriterFileDocumentWrapper : public SpriterFileDocumentWrapper 11 | { 12 | typedef pugi::xml_document Document_t; 13 | 14 | public: 15 | PugiXmlSpriterFileDocumentWrapper(); 16 | 17 | void loadFile(std::string fileName) override; 18 | 19 | private: 20 | SpriterFileElementWrapper *newElementWrapperFromFirstElement() override; 21 | SpriterFileElementWrapper *newElementWrapperFromFirstElement(const std::string & elementName) override; 22 | 23 | Document_t doc; 24 | }; 25 | 26 | } 27 | 28 | #endif // PUGIXMLSPRITERFILEDOCUMENTWRAPPER_H 29 | -------------------------------------------------------------------------------- /example/override/pugixmlspriterfileelementwrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef PUGIXMLSPRITERFILEELEMENTWRAPPER_H 2 | #define PUGIXMLSPRITERFILEELEMENTWRAPPER_H 3 | 4 | #include "../../pugixml/pugixml.hpp" 5 | 6 | #include "../../spriterengine/override/spriterfileelementwrapper.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | class PugiXmlSpriterFileElementWrapper : public SpriterFileElementWrapper 11 | { 12 | typedef pugi::xml_node ElementPtr_t; 13 | typedef pugi::xml_attribute AttributePtr_t; 14 | 15 | public: 16 | PugiXmlSpriterFileElementWrapper(ElementPtr_t initialElement); 17 | 18 | std::string getName() override; 19 | 20 | bool isValid() override; 21 | 22 | void advanceToNextSiblingElement() override; 23 | void advanceToNextSiblingElementOfSameName() override; 24 | 25 | private: 26 | SpriterFileAttributeWrapper *newAttributeWrapperFromFirstAttribute() override; 27 | SpriterFileAttributeWrapper *newAttributeWrapperFromFirstAttribute(const std::string & attributeName) override; 28 | 29 | SpriterFileElementWrapper *newElementWrapperFromFirstElement() override; 30 | SpriterFileElementWrapper *newElementWrapperFromFirstElement(const std::string & elementName) override; 31 | 32 | SpriterFileElementWrapper *newElementWrapperFromNextSiblingElement() override; 33 | 34 | SpriterFileElementWrapper *newElementClone() override; 35 | 36 | AttributePtr_t findAttributeInElement(const std::string & name); 37 | 38 | ElementPtr_t element; 39 | }; 40 | 41 | } 42 | 43 | #endif // PUGIXMLSPRITERFILEELEMENTWRAPPER_H 44 | -------------------------------------------------------------------------------- /example/override/sfmlatlasfile.cpp: -------------------------------------------------------------------------------- 1 | #include "sfmlatlasfile.h" 2 | 3 | #include "../../spriterengine/global/settings.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | SfmlAtlasFile::SfmlAtlasFile(std::string initialFilePath) : 9 | AtlasFile(initialFilePath), m_loaded(false) 10 | { 11 | initializeFile(); 12 | } 13 | 14 | const sf::Texture* SfmlAtlasFile::getTexture() const 15 | { 16 | return &texture; 17 | } 18 | 19 | void SfmlAtlasFile::initializeFile() 20 | { 21 | if (texture.loadFromFile(path())) 22 | { 23 | m_loaded = true; 24 | } 25 | else 26 | { 27 | m_loaded = false; 28 | Settings::Settings::error("SfmlAtlasFile::initializeFile - sfml texture unable to load file from path \"" + path() + "\""); 29 | } 30 | } 31 | 32 | void SfmlAtlasFile::renderSprite(UniversalObjectInterface *spriteInfo, const atlasframedata data) 33 | { 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /example/override/sfmlatlasfile.h: -------------------------------------------------------------------------------- 1 | #ifndef SFMLATLASFILE_H 2 | #define SFMLATLASFILE_H 3 | 4 | #include "../../spriterengine/override/atlasfile.h" 5 | 6 | #include 7 | 8 | namespace SpriterEngine 9 | { 10 | class SfmlAtlasFile : public AtlasFile 11 | { 12 | public: 13 | SfmlAtlasFile(std::string initialFilePath); 14 | 15 | const sf::Texture *getTexture() const; 16 | 17 | bool loaded() {return m_loaded;} 18 | 19 | private: 20 | sf::Texture texture; 21 | 22 | void initializeFile(); 23 | 24 | void renderSprite(UniversalObjectInterface *spriteInfo, const atlasframedata data) override; 25 | 26 | bool m_loaded; 27 | }; 28 | 29 | } 30 | 31 | #endif // SFMLATLASFILE_H 32 | -------------------------------------------------------------------------------- /example/override/sfmlboneinstanceinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "sfmlboneinstanceinfo.h" 2 | 3 | #include "../../spriterengine/global/settings.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | SfmlBoneInstanceInfo::SfmlBoneInstanceInfo(point initialSize, sf::RenderWindow *validRenderWindow) : 9 | BoneInstanceInfo(initialSize), 10 | renderWindow(validRenderWindow) 11 | { 12 | boneShape.setPointCount(4); 13 | 14 | boneShape.setPoint(0, sf::Vector2f(0, initialSize.y/2.0)); 15 | boneShape.setPoint(1, sf::Vector2f(4, 0)); 16 | boneShape.setPoint(2, sf::Vector2f(initialSize.x, initialSize.y/2.0)); 17 | boneShape.setPoint(3, sf::Vector2f(4, initialSize.y)); 18 | 19 | boneShape.setOrigin(0, initialSize.y/2.0); 20 | 21 | boneShape.setFillColor(sf::Color(0, 0, 255, 50)); 22 | 23 | boneShape.setOutlineColor(sf::Color::White); 24 | boneShape.setOutlineThickness(1); 25 | } 26 | 27 | void SfmlBoneInstanceInfo::render() 28 | { 29 | if (Settings::renderDebugBones) 30 | { 31 | boneShape.setPosition(getPosition().x, getPosition().y); 32 | boneShape.setRotation(toDegrees(getAngle())); 33 | boneShape.setScale(getScale().x, getScale().y); 34 | renderWindow->draw(boneShape); 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /example/override/sfmlboneinstanceinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef SFMLBONEINSTANCEINFO_H 2 | #define SFMLBONEINSTANCEINFO_H 3 | 4 | #include "SFML/Graphics/RenderWindow.hpp" 5 | 6 | #include "SFML/Graphics/ConvexShape.hpp" 7 | 8 | #include "../../spriterengine/objectinfo/boneinstanceinfo.h" 9 | 10 | namespace SpriterEngine 11 | { 12 | 13 | class SfmlBoneInstanceInfo : public BoneInstanceInfo 14 | { 15 | public: 16 | SfmlBoneInstanceInfo(point initialSize, sf::RenderWindow *validRenderWindow); 17 | 18 | void render() override; 19 | 20 | private: 21 | sf::RenderWindow *renderWindow; 22 | 23 | sf::ConvexShape boneShape; 24 | }; 25 | 26 | } 27 | 28 | #endif // SFMLBONEINSTANCEINFO_H 29 | -------------------------------------------------------------------------------- /example/override/sfmlboxinstanceinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "sfmlboxinstanceinfo.h" 2 | 3 | #include "../../spriterengine/global/settings.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | SfmlBoxInstanceInfo::SfmlBoxInstanceInfo(point initialSize, sf::RenderWindow *validRenderWindow) : 9 | BoxInstanceInfo(initialSize), 10 | renderWindow(validRenderWindow), 11 | rectangle(sf::Vector2f(initialSize.x, initialSize.y)) 12 | { 13 | } 14 | 15 | void SfmlBoxInstanceInfo::render() 16 | { 17 | if (Settings::renderDebugBoxes) 18 | { 19 | rectangle.setPosition(getPosition().x, getPosition().y); 20 | rectangle.setRotation(toDegrees(getAngle())); 21 | rectangle.setScale(getScale().x, getScale().y); 22 | rectangle.setOrigin(getPivot().x*getSize().x, getPivot().y*getSize().y); 23 | renderWindow->draw(rectangle); 24 | } 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /example/override/sfmlboxinstanceinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef SFMLBOXINSTANCEINFO_H 2 | #define SFMLBOXINSTANCEINFO_H 3 | 4 | #include "SFML/Graphics/RenderWindow.hpp" 5 | 6 | #include "SFML/Graphics/RectangleShape.hpp" 7 | 8 | #include "../../spriterengine/objectinfo/boxinstanceinfo.h" 9 | 10 | namespace SpriterEngine 11 | { 12 | 13 | class SfmlBoxInstanceInfo : public BoxInstanceInfo 14 | { 15 | public: 16 | SfmlBoxInstanceInfo(point initialSize, sf::RenderWindow *validRenderWindow); 17 | 18 | void render() override; 19 | 20 | private: 21 | sf::RenderWindow *renderWindow; 22 | 23 | sf::RectangleShape rectangle; 24 | }; 25 | 26 | } 27 | 28 | #endif // SFMLBOXINSTANCEINFO_H 29 | -------------------------------------------------------------------------------- /example/override/sfmlimagefile.h: -------------------------------------------------------------------------------- 1 | #ifndef SFMLIMAGEFILE_H 2 | #define SFMLIMAGEFILE_H 3 | 4 | #include "../../spriterengine/override/imagefile.h" 5 | 6 | #include 7 | 8 | namespace SpriterEngine 9 | { 10 | class SfmlImageFile : public ImageFile 11 | { 12 | public: 13 | SfmlImageFile(std::string initialFilePath, point initialDefaultPivot, sf::RenderWindow *validRenderWindow); 14 | 15 | void renderSprite(UniversalObjectInterface *spriteInfo) override; 16 | 17 | void setAtlasFile(AtlasFile *initialAtlasFile, atlasframedata initialAtlasFrameData) override; 18 | 19 | private: 20 | sf::Texture texture; 21 | sf::Sprite sprite; 22 | 23 | sf::RenderWindow *renderWindow; 24 | 25 | void initializeFile(); 26 | }; 27 | 28 | } 29 | 30 | #endif // SFMLIMAGEFILE_H 31 | -------------------------------------------------------------------------------- /example/override/sfmlpointinstanceinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "sfmlpointinstanceinfo.h" 2 | 3 | #include "../../spriterengine/global/settings.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | SfmlPointInstanceInfo::SfmlPointInstanceInfo(sf::RenderWindow *validRenderWindow) : 9 | renderWindow(validRenderWindow), 10 | circle(10) 11 | { 12 | circle.setFillColor(sf::Color::Red); 13 | circle.setOrigin(5, 5); 14 | } 15 | 16 | void SfmlPointInstanceInfo::render() 17 | { 18 | if (Settings::renderDebugPoints) 19 | { 20 | circle.setPosition(getPosition().x, getPosition().y); 21 | circle.setRotation(toDegrees(getAngle())); 22 | renderWindow->draw(circle); 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /example/override/sfmlpointinstanceinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef SFMLPOINTINSTANCEINFO_H 2 | #define SFMLPOINTINSTANCEINFO_H 3 | 4 | #include "SFML/Graphics/RenderWindow.hpp" 5 | 6 | #include "SFML/Graphics/CircleShape.hpp" 7 | 8 | #include "../../spriterengine/objectinfo/pointinstanceinfo.h" 9 | 10 | namespace SpriterEngine 11 | { 12 | 13 | class SfmlPointInstanceInfo : public PointInstanceInfo 14 | { 15 | public: 16 | SfmlPointInstanceInfo(sf::RenderWindow *validRenderWindow); 17 | 18 | void render() override; 19 | 20 | private: 21 | sf::RenderWindow *renderWindow; 22 | 23 | sf::CircleShape circle; 24 | }; 25 | 26 | } 27 | 28 | #endif // SFMLPOINTINSTANCEINFO_H 29 | -------------------------------------------------------------------------------- /example/override/sfmlsoundfile.cpp: -------------------------------------------------------------------------------- 1 | #include "sfmlsoundfile.h" 2 | 3 | #include "../../spriterengine/global/settings.h" 4 | 5 | #include "sfmlsoundobjectinforeference.h" 6 | 7 | namespace SpriterEngine 8 | { 9 | SfmlSoundFile::SfmlSoundFile(std::string initialFilePath) : 10 | SoundFile(initialFilePath) 11 | { 12 | initializeFile(); 13 | } 14 | 15 | void SfmlSoundFile::initializeFile() 16 | { 17 | if (!buffer.loadFromFile(path())) 18 | { 19 | Settings::error("SfmlSoundFile::initializeFile - sfml sound buffer unable to load file from path \"" + path() + "\""); 20 | } 21 | } 22 | 23 | SoundObjectInfoReference * SfmlSoundFile::newSoundInfoReference() 24 | { 25 | return new SfmlSoundObjectInfoReference(buffer); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /example/override/sfmlsoundfile.h: -------------------------------------------------------------------------------- 1 | #ifndef SFMLSOUNDFILE_H 2 | #define SFMLSOUNDFILE_H 3 | 4 | #include "../../spriterengine/override/soundfile.h" 5 | 6 | #include "SFML/Audio.hpp" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class SfmlSoundFile : public SoundFile 12 | { 13 | public: 14 | SfmlSoundFile(std::string initialFilePath); 15 | 16 | SoundObjectInfoReference * newSoundInfoReference(); 17 | 18 | private: 19 | sf::SoundBuffer buffer; 20 | 21 | void initializeFile(); 22 | }; 23 | 24 | } 25 | 26 | #endif // SFMLSOUNDFILE_H 27 | -------------------------------------------------------------------------------- /example/override/sfmlsoundobjectinforeference.cpp: -------------------------------------------------------------------------------- 1 | #include "sfmlsoundobjectinforeference.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | SfmlSoundObjectInfoReference::SfmlSoundObjectInfoReference(sf::SoundBuffer &buffer) 7 | { 8 | sound.setBuffer(buffer); 9 | } 10 | 11 | void SfmlSoundObjectInfoReference::playTrigger() 12 | { 13 | if (getTriggerCount()) 14 | { 15 | sound.play(); 16 | } 17 | } 18 | 19 | void SfmlSoundObjectInfoReference::setPlaybackVolume() 20 | { 21 | sound.setVolume(100 * getVolume()); 22 | } 23 | 24 | void SfmlSoundObjectInfoReference::setPlaybackPanning() 25 | { 26 | sound.setPosition(100 * getPanning(), 0, 0); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /example/override/sfmlsoundobjectinforeference.h: -------------------------------------------------------------------------------- 1 | #ifndef SFMLSOUNDOBJECTINFOREFERENCE_H 2 | #define SFMLSOUNDOBJECTINFOREFERENCE_H 3 | 4 | #include "../../spriterengine/override/soundobjectinforeference.h" 5 | 6 | #include "SFML/Audio.hpp" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | 12 | class SfmlSoundObjectInfoReference : public SoundObjectInfoReference 13 | { 14 | public: 15 | SfmlSoundObjectInfoReference(sf::SoundBuffer &buffer); 16 | 17 | void playTrigger() override; 18 | 19 | private: 20 | void setPlaybackVolume() override; 21 | void setPlaybackPanning() override; 22 | 23 | sf::Sound sound; 24 | }; 25 | 26 | } 27 | 28 | #endif // SFMLSOUNDOBJECTINFOREFERENCE_H 29 | -------------------------------------------------------------------------------- /example/override/tinyxmlspriterfileattributewrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "tinyxmlspriterfileattributewrapper.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | TinyXmlSpriterFileAttributeWrapper::TinyXmlSpriterFileAttributeWrapper(const tinyxml2::XMLAttribute *initialAttribute): 6 | attribute(initialAttribute) 7 | { 8 | } 9 | 10 | std::string TinyXmlSpriterFileAttributeWrapper::getName() 11 | { 12 | return attribute->Name(); 13 | } 14 | 15 | bool TinyXmlSpriterFileAttributeWrapper::isValid() 16 | { 17 | return attribute; 18 | } 19 | 20 | real TinyXmlSpriterFileAttributeWrapper::getRealValue() 21 | { 22 | return attribute->DoubleValue(); 23 | } 24 | 25 | int TinyXmlSpriterFileAttributeWrapper::getIntValue() 26 | { 27 | return attribute->IntValue(); 28 | } 29 | 30 | std::string TinyXmlSpriterFileAttributeWrapper::getStringValue() 31 | { 32 | return attribute->Value(); 33 | } 34 | 35 | void TinyXmlSpriterFileAttributeWrapper::advanceToNextAttribute() 36 | { 37 | attribute = attribute->Next(); 38 | } 39 | } -------------------------------------------------------------------------------- /example/override/tinyxmlspriterfileattributewrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef TINYXMLSPRITERFILEATTRIBUTEWRAPPER_H 2 | #define TINYXMLSPRITERFILEATTRIBUTEWRAPPER_H 3 | 4 | #include "../../tinyxml2/tinyxml2.h" 5 | 6 | #include "../../spriterengine/override/spriterfileattributewrapper.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | class TinyXmlSpriterFileAttributeWrapper : public SpriterFileAttributeWrapper 11 | { 12 | public: 13 | TinyXmlSpriterFileAttributeWrapper(const tinyxml2::XMLAttribute *initialAttribute); 14 | 15 | std::string getName() override; 16 | 17 | bool isValid() override; 18 | 19 | real getRealValue() override; 20 | int getIntValue() override; 21 | std::string getStringValue() override; 22 | 23 | void advanceToNextAttribute() override; 24 | 25 | private: 26 | const tinyxml2::XMLAttribute *attribute; 27 | }; 28 | 29 | } 30 | 31 | #endif // TINYXMLSPRITERFILEATTRIBUTEWRAPPER_H -------------------------------------------------------------------------------- /example/override/tinyxmlspriterfiledocumentwrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "tinyxmlspriterfiledocumentwrapper.h" 2 | 3 | #include "tinyxmlspriterfileelementwrapper.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | TinyXmlSpriterFileDocumentWrapper::TinyXmlSpriterFileDocumentWrapper() 8 | { 9 | } 10 | 11 | void TinyXmlSpriterFileDocumentWrapper::loadFile(std::string fileName) 12 | { 13 | doc.LoadFile(fileName.c_str()); 14 | } 15 | 16 | SpriterFileElementWrapper * TinyXmlSpriterFileDocumentWrapper::newElementWrapperFromFirstElement() 17 | { 18 | return new TinyXmlSpriterFileElementWrapper(doc.FirstChildElement()); 19 | } 20 | 21 | SpriterFileElementWrapper * TinyXmlSpriterFileDocumentWrapper::newElementWrapperFromFirstElement(const std::string & elementName) 22 | { 23 | return new TinyXmlSpriterFileElementWrapper(doc.FirstChildElement(elementName.c_str())); 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /example/override/tinyxmlspriterfiledocumentwrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef TINYXMLSPRITERFILEDOCUMENTWRAPPER_H 2 | #define TINYXMLSPRITERFILEDOCUMENTWRAPPER_H 3 | 4 | #include "../../tinyxml2/tinyxml2.h" 5 | 6 | #include "../../spriterengine/override/spriterfiledocumentwrapper.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | class TinyXmlSpriterFileDocumentWrapper : public SpriterFileDocumentWrapper 11 | { 12 | public: 13 | TinyXmlSpriterFileDocumentWrapper(); 14 | 15 | void loadFile(std::string fileName) override; 16 | 17 | private: 18 | SpriterFileElementWrapper *newElementWrapperFromFirstElement() override; 19 | SpriterFileElementWrapper *newElementWrapperFromFirstElement(const std::string & elementName) override; 20 | 21 | tinyxml2::XMLDocument doc; 22 | }; 23 | 24 | } 25 | 26 | #endif // TINYXMLSPRITERFILEDOCUMENTWRAPPER_H -------------------------------------------------------------------------------- /example/override/tinyxmlspriterfileelementwrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef TINYXMLSPRITERFILEELEMENTWRAPPER_H 2 | #define TINYXMLSPRITERFILEELEMENTWRAPPER_H 3 | 4 | #include "../../tinyxml2/tinyxml2.h" 5 | 6 | #include "../../spriterengine/override/spriterfileelementwrapper.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | class TinyXmlSpriterFileElementWrapper : public SpriterFileElementWrapper 11 | { 12 | public: 13 | TinyXmlSpriterFileElementWrapper(tinyxml2::XMLElement *initialElement); 14 | 15 | std::string getName() override; 16 | 17 | bool isValid() override; 18 | 19 | void advanceToNextSiblingElement() override; 20 | void advanceToNextSiblingElementOfSameName() override; 21 | 22 | private: 23 | SpriterFileAttributeWrapper *newAttributeWrapperFromFirstAttribute() override; 24 | SpriterFileAttributeWrapper *newAttributeWrapperFromFirstAttribute(const std::string & attributeName) override; 25 | 26 | SpriterFileElementWrapper *newElementWrapperFromFirstElement() override; 27 | SpriterFileElementWrapper *newElementWrapperFromFirstElement(const std::string & elementName) override; 28 | 29 | SpriterFileElementWrapper *newElementWrapperFromNextSiblingElement() override; 30 | 31 | SpriterFileElementWrapper *newElementClone() override; 32 | 33 | const tinyxml2::XMLAttribute * findAttributeInElement(const std::string & name); 34 | 35 | tinyxml2::XMLElement *element; 36 | }; 37 | 38 | } 39 | 40 | #endif // TINYXMLSPRITERFILEELEMENTWRAPPER_H -------------------------------------------------------------------------------- /nlohmann-json/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(JSON CXX) 2 | 3 | set(JSON_HDRS 4 | json.hpp) 5 | 6 | #Nothing to do here 7 | -------------------------------------------------------------------------------- /pugixml/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(PUGIXML CXX) 2 | 3 | set(PUGIXML_HDRS 4 | pugiconfig.hpp 5 | pugixml.hpp) 6 | 7 | set(PUGIXML_SRCS 8 | pugixml.cpp) 9 | 10 | add_library(pugixml STATIC 11 | ${PUGIXML_SRCS}) 12 | -------------------------------------------------------------------------------- /spriterengine/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(SPRITER_ENGINE CXX) 2 | 3 | file(GLOB_RECURSE SPRITER_ENGINE_SRCS *.cpp) 4 | file(GLOB_RECURSE SPRITER_ENGINE_HDRS *.h) 5 | 6 | add_library(spriterengine STATIC 7 | ${SPRITER_ENGINE_SRCS}) 8 | -------------------------------------------------------------------------------- /spriterengine/animation/mainlinekey.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINLINEKEY_H 2 | #define MAINLINEKEY_H 3 | 4 | #include 5 | 6 | #include "../global/global.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class ObjectRef; 12 | class ObjectRefInstance; 13 | class UniversalObjectInterface; 14 | class EntityInstance; 15 | class EntityInstanceData; 16 | class TimelineKey; 17 | class TimeInfo; 18 | 19 | typedef std::vector RefVector; 20 | typedef std::vector RefInstanceVector; 21 | 22 | typedef std::vector ObjectInterfaceVector; 23 | 24 | class MainlineKey 25 | { 26 | public: 27 | MainlineKey(TimeInfo *initialTimeInfo); 28 | ~MainlineKey(); 29 | 30 | void setupRefInstancesAndTimeInfo(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData, RefInstanceVector *refInstances, ObjectInterfaceVector *instanceZOrder, TimeInfo *&instanceTimeInfo); 31 | 32 | void pushBackBoneRef(ObjectRef *ref); 33 | void pushBackZOrderRef(ObjectRef *ref); 34 | 35 | real getTime(); 36 | 37 | private: 38 | TimeInfo *timeInfo; 39 | RefVector boneRefs; 40 | RefVector zOrderRefs; 41 | }; 42 | 43 | } 44 | 45 | #endif // MAINLINEKEY_H 46 | -------------------------------------------------------------------------------- /spriterengine/animation/mainlinekeyinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINLINEKEYINSTANCE_H 2 | #define MAINLINEKEYINSTANCE_H 3 | 4 | #include 5 | #include 6 | 7 | #include "../global/global.h" 8 | 9 | #include "../objectref/transformprocessor.h" 10 | 11 | namespace SpriterEngine 12 | { 13 | 14 | class ObjectRefInstance; 15 | 16 | typedef std::vector RefInstanceVector; 17 | 18 | typedef std::vector ObjectInterfaceVector; 19 | 20 | class EntityInstance; 21 | class EntityInstanceData; 22 | class MainlineKey; 23 | class TimeInfo; 24 | class MainlineKeyInstance 25 | { 26 | public: 27 | MainlineKeyInstance(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData, MainlineKey *mainlineKey); 28 | ~MainlineKeyInstance(); 29 | 30 | real process(real currentTime, ObjectInterfaceVector **instanceZOrder); 31 | 32 | real processRefKeys(real currentTime); 33 | 34 | void blendRefKeys(real currentTime, real blendRatio); 35 | void setZOrder(ObjectInterfaceVector ** instanceZOrder); 36 | void processRefTransforms(); 37 | 38 | real getTime(); 39 | real getNextTime(); 40 | bool timeInRange(real timeToCheck); 41 | 42 | private: 43 | RefInstanceVector refs; 44 | ObjectInterfaceVector zOrder; 45 | TimeInfo *timeInfo; 46 | }; 47 | 48 | } 49 | 50 | #endif // MAINLINEKEYINSTANCE_H 51 | -------------------------------------------------------------------------------- /spriterengine/charactermap/charactermap.cpp: -------------------------------------------------------------------------------- 1 | #include "charactermap.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | CharacterMap::CharacterMap() 7 | { 8 | } 9 | 10 | 11 | void CharacterMap::applyCharacterMap(FileReferenceVector *mappedFiles) 12 | { 13 | for (auto& it : mapInstructions) 14 | { 15 | it.applyMapInstruction(mappedFiles); 16 | } 17 | } 18 | 19 | void CharacterMap::appendMapInstruction(int initialFileToReplaceIndex, File *replacementFile) 20 | { 21 | mapInstructions.push_back(CharacterMapInstruction(initialFileToReplaceIndex, replacementFile)); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spriterengine/charactermap/charactermap.h: -------------------------------------------------------------------------------- 1 | #ifndef CHARACTERMAP_H 2 | #define CHARACTERMAP_H 3 | 4 | #include 5 | 6 | #include "charactermapinstruction.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | typedef std::vector FileVector; 12 | typedef std::vector CharacterMapInstructionVector; 13 | 14 | class CharacterMap 15 | { 16 | public: 17 | CharacterMap(); 18 | 19 | void applyCharacterMap(FileReferenceVector *mappedFiles); 20 | 21 | void appendMapInstruction(int initialFileToReplaceIndex, File * replacementFile); 22 | 23 | private: 24 | CharacterMapInstructionVector mapInstructions; 25 | }; 26 | 27 | } 28 | 29 | #endif // CHARACTERMAP_H 30 | -------------------------------------------------------------------------------- /spriterengine/charactermap/charactermapinstruction.cpp: -------------------------------------------------------------------------------- 1 | #include "charactermapinstruction.h" 2 | 3 | #include "../file/filereference.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | CharacterMapInstruction::CharacterMapInstruction(int initialFileToReplaceIndex, File *initialReplacementFile) : 9 | fileToReplace(initialFileToReplaceIndex), 10 | replacementFile(initialReplacementFile) 11 | { 12 | } 13 | 14 | 15 | void CharacterMapInstruction::applyMapInstruction(FileReferenceVector *mappedFiles) 16 | { 17 | mappedFiles->at(fileToReplace)->setFile(replacementFile); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /spriterengine/charactermap/charactermapinstruction.h: -------------------------------------------------------------------------------- 1 | #ifndef CHARACTERMAPINSTRUCTION_H 2 | #define CHARACTERMAPINSTRUCTION_H 3 | 4 | #include 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class File; 10 | class FileReference; 11 | 12 | typedef std::vector FileReferenceVector; 13 | 14 | class CharacterMapInstruction 15 | { 16 | public: 17 | CharacterMapInstruction(int initialFileToReplaceIndex, File *initialReplacementFile); 18 | 19 | void applyMapInstruction(FileReferenceVector *mappedFiles); 20 | 21 | private: 22 | int fileToReplace; 23 | File *replacementFile; 24 | }; 25 | 26 | } 27 | 28 | #endif // CHARACTERMAPINSTRUCTION_H 29 | -------------------------------------------------------------------------------- /spriterengine/charactermap/charactermapinterface.h: -------------------------------------------------------------------------------- 1 | #ifndef CHARACTERMAPINTERFACE_H 2 | #define CHARACTERMAPINTERFACE_H 3 | 4 | #include 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class FileReference; 10 | 11 | typedef std::vector FileReferenceVector; 12 | 13 | class CharacterMapInterface 14 | { 15 | public: 16 | virtual ~CharacterMapInterface() {} 17 | 18 | virtual void applyCharacterMap(std::string mapName, FileReferenceVector *mappedFiles) = 0; 19 | virtual void removeAllCharacterMaps(FileReferenceVector *mappedFiles) = 0; 20 | 21 | }; 22 | 23 | } 24 | 25 | #endif // CHARACTERMAPINTERFACE_H 26 | -------------------------------------------------------------------------------- /spriterengine/entity/object.h: -------------------------------------------------------------------------------- 1 | #ifndef OBJECT_H 2 | #define OBJECT_H 3 | 4 | #include 5 | 6 | #include "../variable/variablecontainer.h" 7 | 8 | #include "../global/global.h" 9 | 10 | 11 | namespace SpriterEngine 12 | { 13 | 14 | class UniversalObjectInterface; 15 | class VariableInstanceNameAndIdMap; 16 | class ObjectFactory; 17 | class SpriterModel; 18 | class EntityInstance; 19 | class EntityInstanceData; 20 | 21 | typedef std::vector VariableVector; 22 | typedef std::vector IdVector; 23 | 24 | class Object : public VariableContainer 25 | { 26 | public: 27 | enum ObjectType 28 | { 29 | OBJECTTYPE_NONE, 30 | OBJECTTYPE_POINT, 31 | OBJECTTYPE_BONE, 32 | OBJECTTYPE_BOX, 33 | OBJECTTYPE_SPRITE, 34 | OBJECTTYPE_ENTITY, 35 | OBJECTTYPE_SOUND, 36 | OBJECTTYPE_TRIGGER 37 | }; 38 | 39 | Object(std::string initialName, int initialId, ObjectType initialObjectType); 40 | 41 | std::string getName(); 42 | int getId(); 43 | ObjectType getType(); 44 | 45 | void addInitializationId(int newId); 46 | void setSize(point newSize); 47 | 48 | UniversalObjectInterface *getNewObjectInfoInstance(); 49 | 50 | virtual void addObjectInstanceToEntityInstanceData(SpriterModel * model, EntityInstance * entityInstance, EntityInstanceData * entityInstanceData, ObjectFactory * objectFactory); 51 | 52 | private: 53 | std::string name; 54 | ObjectType objectType; 55 | int objectId; 56 | 57 | point size; 58 | IdVector initializationIds; 59 | }; 60 | 61 | } 62 | 63 | #endif // OBJECT_H 64 | -------------------------------------------------------------------------------- /spriterengine/file/file.cpp: -------------------------------------------------------------------------------- 1 | #include "file.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | File::File(std::string initialFilePath) : 7 | filePath(initialFilePath) 8 | { 9 | 10 | } 11 | 12 | ImageFile *File::imageFile() 13 | { 14 | return 0; 15 | } 16 | 17 | SoundFile *File::soundFile() 18 | { 19 | return 0; 20 | } 21 | 22 | AtlasFile *File::atlasFile() 23 | { 24 | return 0; 25 | } 26 | 27 | std::string File::path() 28 | { 29 | return filePath; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spriterengine/file/file.h: -------------------------------------------------------------------------------- 1 | #ifndef FILE_H 2 | #define FILE_H 3 | 4 | #include 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class ImageFile; 10 | class SoundFile; 11 | class AtlasFile; 12 | 13 | class File 14 | { 15 | public: 16 | File(std::string initialFilePath); 17 | virtual ~File() {} 18 | 19 | virtual ImageFile *imageFile(); 20 | virtual SoundFile *soundFile(); 21 | virtual AtlasFile *atlasFile(); 22 | 23 | std::string path(); 24 | 25 | private: 26 | std::string filePath; 27 | }; 28 | 29 | } 30 | 31 | #endif // FILE_H 32 | -------------------------------------------------------------------------------- /spriterengine/file/filereference.cpp: -------------------------------------------------------------------------------- 1 | #include "filereference.h" 2 | 3 | #include "file.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | FileReference::FileReference(File *initialFile) : 9 | file(initialFile) 10 | { 11 | } 12 | 13 | ImageFile *FileReference::image() 14 | { 15 | if (file) 16 | { 17 | return file->imageFile(); 18 | } 19 | else 20 | { 21 | return 0; 22 | } 23 | } 24 | 25 | SoundFile *FileReference::sound() 26 | { 27 | if (file) 28 | { 29 | return file->soundFile(); 30 | } 31 | else 32 | { 33 | return 0; 34 | } 35 | } 36 | 37 | void FileReference::setFile(File *newFile) 38 | { 39 | file = newFile; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /spriterengine/file/filereference.h: -------------------------------------------------------------------------------- 1 | #ifndef FILEREFERENCE_H 2 | #define FILEREFERENCE_H 3 | 4 | namespace SpriterEngine 5 | { 6 | 7 | class File; 8 | class ImageFile; 9 | class SoundFile; 10 | 11 | class FileReference 12 | { 13 | public: 14 | FileReference(File *initialFile); 15 | 16 | ImageFile *image(); 17 | SoundFile *sound(); 18 | 19 | void setFile(File *newFile); 20 | 21 | private: 22 | File *file; 23 | }; 24 | 25 | } 26 | 27 | #endif // FILEREFERENCE_H 28 | -------------------------------------------------------------------------------- /spriterengine/global/settings.h: -------------------------------------------------------------------------------- 1 | #ifndef SETTINGS_H 2 | #define SETTINGS_H 3 | 4 | #include 5 | 6 | #include 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | typedef void(*ErrorFunctionPointer)(const std::string &errorMessage); 12 | 13 | class Settings 14 | { 15 | public: 16 | static bool renderDebugBoxes; 17 | static bool renderDebugPoints; 18 | static bool renderDebugBones; 19 | 20 | static bool enableDebugBones; 21 | 22 | static void simpleError(const std::string &errorMessage); 23 | 24 | static void nullError(const std::string &errorMessage); 25 | 26 | static void error(const std::string &errorMessage); 27 | 28 | static void setErrorFunction(ErrorFunctionPointer errorFunction); 29 | 30 | static void suppressErrorOutput(bool suppress = true); 31 | 32 | static bool reverseYOnLoad; 33 | static bool reversePivotYOnLoad; 34 | static bool reverseAngleOnLoad; 35 | 36 | private: 37 | static ErrorFunctionPointer errFunction; 38 | static ErrorFunctionPointer previousErrorFunction; 39 | }; 40 | 41 | } 42 | #endif // SETTINGS_H 43 | -------------------------------------------------------------------------------- /spriterengine/loading/loader.h: -------------------------------------------------------------------------------- 1 | #ifndef LOADER_H 2 | #define LOADER_H 3 | 4 | #include 5 | 6 | #include "spriterdocumentloader.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class SpriterFileDocumentWrapper; 12 | class SpriterModel; 13 | class FileFactory; 14 | 15 | class Loader 16 | { 17 | public: 18 | Loader(FileFactory *newFileFactory); 19 | ~Loader(); 20 | 21 | void loadFile(SpriterModel *model, const std::string &fileName); 22 | 23 | private: 24 | enum SpriterFileType 25 | { 26 | SPRITERFILETYPE_NONE, 27 | SPRITERFILETYPE_SCML, 28 | SPRITERFILETYPE_SCON 29 | }; 30 | 31 | FileFactory *fileFactory; 32 | 33 | SpriterFileType extractFileTypeFromFileName(const std::string &fileName); 34 | }; 35 | } 36 | 37 | #endif // LOADER_H 38 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/angleinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "angleinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | AngleInfo::AngleInfo() : 7 | angle(0), 8 | spinDirection(0) 9 | { 10 | } 11 | 12 | real AngleInfo::angleLinear(real angleB, real t) 13 | { 14 | if (spinDirection == 0) 15 | { 16 | return angle; 17 | } 18 | 19 | if (spinDirection == 1) 20 | { 21 | if (angle < angleB) 22 | { 23 | angleB -= MAX_RADIANS; 24 | } 25 | } 26 | else 27 | { 28 | if (angleB < angle) 29 | { 30 | angleB += MAX_RADIANS; 31 | } 32 | } 33 | 34 | return linear(angle, angleB, t); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/angleinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef ANGLEINFO_H 2 | #define ANGLEINFO_H 3 | 4 | #include "../global/global.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class AngleInfo 10 | { 11 | public: 12 | AngleInfo(); 13 | 14 | real angleLinear(real angleB, real t); 15 | 16 | real angle; 17 | int spinDirection; 18 | }; 19 | 20 | } 21 | 22 | #endif // ANGLEINFO_H 23 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/boneinstanceinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef BONEINSTANCEINFO_H 2 | #define BONEINSTANCEINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | #include "angleinfo.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class BoneInstanceInfo : public UniversalObjectInterface 12 | { 13 | public: 14 | BoneInstanceInfo(point initialSize); 15 | 16 | point getPosition() override; 17 | real getAngle() override; 18 | point getScale() override; 19 | real getAlpha() override; 20 | 21 | point getSize() override; 22 | 23 | void setPosition(const point &newPosition) override; 24 | void setAngle(real newAngle) override; 25 | void setScale(const point &newScale) override; 26 | void setAlpha(real newAlpha) override; 27 | 28 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance = 0) override; 29 | 30 | void render() override; 31 | 32 | private: 33 | point position; 34 | AngleInfo angle; 35 | point scale; 36 | real alpha; 37 | 38 | point size; 39 | }; 40 | 41 | } 42 | 43 | #endif // BONEINSTANCEINFO_H 44 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/boneobjectinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "boneobjectinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | BoneObjectInfo::BoneObjectInfo() : 7 | scale(1, 1), 8 | alpha(1) 9 | { 10 | } 11 | 12 | point BoneObjectInfo::getPosition() 13 | { 14 | return position; 15 | } 16 | 17 | real BoneObjectInfo::getAngle() 18 | { 19 | return angle.angle; 20 | } 21 | 22 | point BoneObjectInfo::getScale() 23 | { 24 | return scale; 25 | } 26 | 27 | real BoneObjectInfo::getAlpha() 28 | { 29 | return alpha; 30 | } 31 | 32 | 33 | void BoneObjectInfo::setPosition(const point &newPosition) 34 | { 35 | position = newPosition; 36 | } 37 | 38 | void BoneObjectInfo::setAngle(real newAngle) 39 | { 40 | angle.angle = newAngle; 41 | } 42 | 43 | void BoneObjectInfo::setScale(const point &newScale) 44 | { 45 | scale = newScale; 46 | } 47 | 48 | void BoneObjectInfo::setAlpha(real newAlpha) 49 | { 50 | alpha = newAlpha; 51 | } 52 | 53 | void BoneObjectInfo::setSpin(int newSpin) 54 | { 55 | angle.spinDirection = newSpin; 56 | } 57 | 58 | void BoneObjectInfo::setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) 59 | { 60 | resultObject->setAngle(angle.angleLinear(bObject->getAngle(), t)); 61 | resultObject->setPosition(linear(position, bObject->getPosition(), t)); 62 | resultObject->setScale(linear(scale, bObject->getScale(), t)); 63 | resultObject->setAlpha(linear(alpha, bObject->getAlpha(), t)); 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/boneobjectinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef BONEOBJECTINFO_H 2 | #define BONEOBJECTINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | #include "angleinfo.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class BoneObjectInfo : public UniversalObjectInterface 12 | { 13 | public: 14 | BoneObjectInfo(); 15 | 16 | point getPosition() override; 17 | real getAngle() override; 18 | point getScale() override; 19 | real getAlpha() override; 20 | 21 | void setPosition(const point &newPosition) override; 22 | void setAngle(real newAngle) override; 23 | void setScale(const point &newScale) override; 24 | void setAlpha(real newAlpha) override; 25 | void setSpin(int newSpin) override; 26 | 27 | void setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) override; 28 | 29 | private: 30 | point position; 31 | AngleInfo angle; 32 | point scale; 33 | real alpha; 34 | }; 35 | 36 | } 37 | 38 | #endif // BONEOBJECTINFO_H 39 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/boxinstanceinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef BOXINSTANCEINFO_H 2 | #define BOXINSTANCEINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | #include "angleinfo.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class BoxInstanceInfo : public UniversalObjectInterface 12 | { 13 | public: 14 | BoxInstanceInfo(point initialSize); 15 | 16 | point getPosition() override; 17 | real getAngle() override; 18 | point getScale() override; 19 | point getPivot() override; 20 | point getSize() override; 21 | real getAlpha() override; 22 | 23 | void setPosition(const point &newPosition) override; 24 | void setAngle(real newAngle) override; 25 | void setScale(const point &newScale) override; 26 | void setPivot(const point &newPivot) override; 27 | void setAlpha(real newAlpha) override; 28 | 29 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance = 0) override; 30 | 31 | void render() override; 32 | 33 | private: 34 | point position; 35 | AngleInfo angle; 36 | point scale; 37 | point pivot; 38 | 39 | point size; 40 | }; 41 | 42 | } 43 | 44 | #endif // BOXINSTANCEINFO_H 45 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/boxobjectinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef BOXOBJECTINFO_H 2 | #define BOXOBJECTINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | #include "angleinfo.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class BoxObjectInfo : public UniversalObjectInterface 12 | { 13 | public: 14 | BoxObjectInfo(); 15 | 16 | point getPosition() override; 17 | real getAngle() override; 18 | point getScale() override; 19 | real getAlpha() override; 20 | point getPivot() override; 21 | 22 | void setPosition(const point &newPosition) override; 23 | void setAngle(real newAngle) override; 24 | void setScale(const point &newScale) override; 25 | void setAlpha(real newAlpha) override; 26 | void setPivot(const point &newPivot) override; 27 | void setSpin(int newSpin) override; 28 | 29 | void setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) override; 30 | 31 | private: 32 | point position; 33 | AngleInfo angle; 34 | point scale; 35 | point pivot; 36 | real alpha; 37 | }; 38 | 39 | } 40 | 41 | #endif // BOXOBJECTINFO_H 42 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/entityobjectinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef ENTITYOBJECTINFO_H 2 | #define ENTITYOBJECTINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | #include "angleinfo.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class EntityObjectInfo : public UniversalObjectInterface 12 | { 13 | public: 14 | EntityObjectInfo(); 15 | 16 | point getPosition() override; 17 | real getAngle() override; 18 | point getScale() override; 19 | real getAlpha() override; 20 | 21 | real getTimeRatio() override; 22 | 23 | 24 | void setPosition(const point &newPosition) override; 25 | void setAngle(real newAngle) override; 26 | void setScale(const point &newScale) override; 27 | void setAlpha(real newAlpha) override; 28 | void setSpin(int newSpin) override; 29 | 30 | void setTimeRatio(real newCurrentTimeRatio) override; 31 | 32 | void setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) override; 33 | 34 | private: 35 | point position; 36 | AngleInfo angle; 37 | point scale; 38 | real alpha; 39 | 40 | real timeRatio; 41 | }; 42 | 43 | } 44 | 45 | #endif // ENTITYOBJECTINFO_H 46 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/eventobjectinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "eventobjectinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | EventObjectInfo::EventObjectInfo() 7 | { 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/eventobjectinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef EVENTOBJECTINFO_H 2 | #define EVENTOBJECTINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class EventObjectInfo : public UniversalObjectInterface 10 | { 11 | public: 12 | EventObjectInfo(); 13 | }; 14 | 15 | } 16 | 17 | #endif // EVENTOBJECTINFO_H 18 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/intvariableinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "intvariableinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | IntVariableInfo::IntVariableInfo() : 7 | value(0) 8 | { 9 | } 10 | 11 | int IntVariableInfo::getIntValue() 12 | { 13 | return value; 14 | } 15 | 16 | void IntVariableInfo::setIntValue(int newValue) 17 | { 18 | value = newValue; 19 | } 20 | 21 | void IntVariableInfo::setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) 22 | { 23 | resultObject->setIntValue(int(linear(value, bObject->getIntValue(), t))); 24 | } 25 | 26 | void IntVariableInfo::setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance) 27 | { 28 | int tempValue = value; 29 | 30 | aObject->setObjectToLinear(bObject, t, this); 31 | 32 | setIntValue(linear(tempValue, value, blendRatio)); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/intvariableinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef INTVARIABLEINFO_H 2 | #define INTVARIABLEINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class IntVariableInfo : public UniversalObjectInterface 10 | { 11 | public: 12 | IntVariableInfo(); 13 | 14 | int getIntValue() override; 15 | void setIntValue(int newValue) override; 16 | 17 | void setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) override; 18 | 19 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance = 0) override; 20 | 21 | private: 22 | int value; 23 | }; 24 | 25 | } 26 | 27 | #endif // INTVARIABLEINFO_H 28 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/pointinstanceinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef POINTINSTANCEINFO_H 2 | #define POINTINSTANCEINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | #include "angleinfo.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class PointInstanceInfo : public UniversalObjectInterface 12 | { 13 | public: 14 | PointInstanceInfo(); 15 | 16 | point getPosition() override; 17 | real getAngle() override; 18 | point getScale() override; 19 | real getAlpha() override; 20 | 21 | void setPosition(const point &newPosition) override; 22 | void setAngle(real newAngle) override; 23 | void setSpin(int newSpin) override; 24 | 25 | void setScale(const point &newScale) override; 26 | void setAlpha(real newAlpha) override; 27 | 28 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance = 0) override; 29 | 30 | void render() override; 31 | 32 | private: 33 | point position; 34 | AngleInfo angle; 35 | }; 36 | 37 | } 38 | 39 | #endif // POINTINSTANCEINFO_H 40 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/pointobjectinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "pointobjectinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | PointObjectInfo::PointObjectInfo() 7 | { 8 | } 9 | 10 | point PointObjectInfo::getPosition() 11 | { 12 | return position; 13 | } 14 | 15 | real PointObjectInfo::getAngle() 16 | { 17 | return angle.angle; 18 | } 19 | 20 | 21 | void PointObjectInfo::setPosition(const point &newPosition) 22 | { 23 | position = newPosition; 24 | } 25 | 26 | void PointObjectInfo::setAngle(real newAngle) 27 | { 28 | angle.angle = newAngle; 29 | } 30 | 31 | void PointObjectInfo::setSpin(int newSpin) 32 | { 33 | angle.spinDirection = newSpin; 34 | } 35 | 36 | 37 | void PointObjectInfo::setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) 38 | { 39 | resultObject->setPosition(linear(position, bObject->getPosition(), t)); 40 | resultObject->setAngle(angle.angleLinear(bObject->getAngle(), t)); 41 | resultObject->setPosition(linear(position, bObject->getPosition(), t)); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/pointobjectinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef POINTOBJECTINFO_H 2 | #define POINTOBJECTINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | #include "angleinfo.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class PointObjectInfo : public UniversalObjectInterface 12 | { 13 | public: 14 | PointObjectInfo(); 15 | 16 | point getPosition() override; 17 | real getAngle() override; 18 | 19 | void setPosition(const point &newPosition) override; 20 | void setAngle(real newAngle) override; 21 | void setSpin(int newSpin) override; 22 | 23 | void setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) override; 24 | 25 | private: 26 | point position; 27 | AngleInfo angle; 28 | }; 29 | 30 | } 31 | 32 | #endif // POINTOBJECTINFO_H 33 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/realvariableinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "realvariableinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | RealVariableInfo::RealVariableInfo() : 7 | value(0) 8 | { 9 | } 10 | 11 | real RealVariableInfo::getRealValue() 12 | { 13 | return value; 14 | } 15 | 16 | void RealVariableInfo::setRealValue(real newValue) 17 | { 18 | value = newValue; 19 | } 20 | 21 | void RealVariableInfo::setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) 22 | { 23 | resultObject->setRealValue(linear(value, bObject->getRealValue(), t)); 24 | } 25 | 26 | void RealVariableInfo::setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance) 27 | { 28 | real tempValue = value; 29 | 30 | aObject->setObjectToLinear(bObject, t, this); 31 | 32 | setRealValue(linear(tempValue, value, blendRatio)); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/realvariableinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef REALVARIABLEINFO_H 2 | #define REALVARIABLEINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class RealVariableInfo : public UniversalObjectInterface 10 | { 11 | public: 12 | RealVariableInfo(); 13 | 14 | real getRealValue() override; 15 | void setRealValue(real newValue) override; 16 | 17 | void setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) override; 18 | 19 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance = 0) override; 20 | 21 | private: 22 | real value; 23 | }; 24 | 25 | } 26 | 27 | #endif // REALVARIABLEINFO_H 28 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/soundobjectinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "soundobjectinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | SoundObjectInfo::SoundObjectInfo() 7 | { 8 | } 9 | 10 | int SoundObjectInfo::getTriggerCount() 11 | { 12 | return trigger; 13 | } 14 | 15 | real SoundObjectInfo::getVolume() 16 | { 17 | return volume; 18 | } 19 | 20 | real SoundObjectInfo::getPanning() 21 | { 22 | return panning; 23 | } 24 | 25 | void SoundObjectInfo::setTriggerCount(int newTriggerCount) 26 | { 27 | trigger = newTriggerCount; 28 | } 29 | 30 | void SoundObjectInfo::setVolume(real newVolume) 31 | { 32 | volume = newVolume; 33 | } 34 | 35 | void SoundObjectInfo::setPanning(real newPanning) 36 | { 37 | panning = newPanning; 38 | } 39 | 40 | void SoundObjectInfo::setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) 41 | { 42 | resultObject->setVolume(linear(volume, bObject->getVolume(), t)); 43 | resultObject->setPanning(linear(panning, bObject->getPanning(), t)); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/soundobjectinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef SOUNDOBJECTINFO_H 2 | #define SOUNDOBJECTINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class SoundObjectInfo : public UniversalObjectInterface 10 | { 11 | public: 12 | SoundObjectInfo(); 13 | 14 | int getTriggerCount() override; 15 | 16 | real getVolume() override; 17 | real getPanning() override; 18 | 19 | void setTriggerCount(int newTriggerCount) override; 20 | 21 | void setVolume(real newVolume) override; 22 | void setPanning(real newPanning) override; 23 | 24 | void setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) override; 25 | 26 | private: 27 | real volume; 28 | real panning; 29 | 30 | bool trigger; 31 | }; 32 | 33 | } 34 | 35 | #endif // SOUNDOBJECTINFO_H 36 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/spriteobjectinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef SPRITEOBJECTINFO_H 2 | #define SPRITEOBJECTINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | #include "../override/imagefile.h" 7 | 8 | #include "angleinfo.h" 9 | 10 | 11 | namespace SpriterEngine 12 | { 13 | 14 | class SpriteObjectInfo : public UniversalObjectInterface 15 | { 16 | public: 17 | SpriteObjectInfo(); 18 | 19 | point getPosition() override; 20 | real getAngle() override; 21 | point getScale() override; 22 | real getAlpha() override; 23 | point getPivot() override; 24 | ImageFile *getImage() override; 25 | 26 | void setPosition(const point &newPosition) override; 27 | void setAngle(real newAngle) override; 28 | void setScale(const point &newScale) override; 29 | void setAlpha(real newAlpha) override; 30 | void setPivot(const point &newPivot) override; 31 | void setImage(ImageFile *newImageFile) override; 32 | void setSpin(int newSpin) override; 33 | 34 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance = 0) override; 35 | 36 | void render() override; 37 | 38 | private: 39 | point position; 40 | AngleInfo angle; 41 | point scale; 42 | real alpha; 43 | point pivot; 44 | ImageFile *imageFile; 45 | }; 46 | 47 | } 48 | 49 | #endif // SPRITEOBJECTINFO_H 50 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/stringvariableinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "stringvariableinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | StringVariableInfo::StringVariableInfo() 7 | { 8 | } 9 | 10 | std::string StringVariableInfo::getStringValue() 11 | { 12 | return value; 13 | } 14 | 15 | void StringVariableInfo::setStringValue(const std::string &newValue) 16 | { 17 | value = newValue; 18 | } 19 | 20 | void StringVariableInfo::setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) 21 | { 22 | resultObject->setStringValue(&value); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/stringvariableinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef STRINGVARIABLEINFO_H 2 | #define STRINGVARIABLEINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class StringVariableInfo : public UniversalObjectInterface 10 | { 11 | public: 12 | StringVariableInfo(); 13 | 14 | std::string getStringValue() override; 15 | void setStringValue(const std::string &newValue) override; 16 | 17 | void setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) override; 18 | 19 | private: 20 | std::string value; 21 | }; 22 | 23 | } 24 | 25 | #endif // STRINGVARIABLEINFO_H 26 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/stringvariableinforeference.cpp: -------------------------------------------------------------------------------- 1 | #include "stringvariableinforeference.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | StringVariableInfoReference::StringVariableInfoReference() : 7 | value(0) 8 | { 9 | } 10 | 11 | std::string StringVariableInfoReference::getStringValue() 12 | { 13 | if (value) 14 | { 15 | return *value; 16 | } 17 | else 18 | { 19 | return ""; 20 | } 21 | } 22 | 23 | void StringVariableInfoReference::setStringValue(std::string *newValue) 24 | { 25 | value = newValue; 26 | } 27 | 28 | void StringVariableInfoReference::setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance) 29 | { 30 | if (blendRatio >= 0.5) 31 | { 32 | aObject->setObjectToLinear(bObject, t, this); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/stringvariableinforeference.h: -------------------------------------------------------------------------------- 1 | #ifndef STRINGVARIABLEINFOREFERENCE_H 2 | #define STRINGVARIABLEINFOREFERENCE_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class StringVariableInfoReference : public UniversalObjectInterface 10 | { 11 | public: 12 | StringVariableInfoReference(); 13 | 14 | std::string getStringValue() override; 15 | void setStringValue(std::string *newValue) override; 16 | 17 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance = 0) override; 18 | 19 | private: 20 | std::string *value; 21 | }; 22 | 23 | } 24 | 25 | #endif // STRINGVARIABLEINFOREFERENCE_H 26 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/taglist.cpp: -------------------------------------------------------------------------------- 1 | #include "taglist.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | TagList::TagList() 7 | { 8 | } 9 | 10 | bool TagList::tagIsActive(std::string tag) const 11 | { 12 | for (auto& it : tags) 13 | { 14 | if (*it == tag) 15 | { 16 | return true; 17 | } 18 | } 19 | return false; 20 | } 21 | 22 | void TagList::pushBackTag(const std::string * tag) 23 | { 24 | tags.push_back(tag); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/taglist.h: -------------------------------------------------------------------------------- 1 | #ifndef TAGLIST_H 2 | #define TAGLIST_H 3 | 4 | #include 5 | #include 6 | 7 | namespace SpriterEngine 8 | { 9 | 10 | typedef std::vector StringRefVector; 11 | 12 | class TagList 13 | { 14 | public: 15 | TagList(); 16 | 17 | bool tagIsActive(std::string tag) const; 18 | 19 | void pushBackTag(const std::string *tag); 20 | 21 | private: 22 | StringRefVector tags; 23 | }; 24 | 25 | } 26 | 27 | #endif // TAGLIST_H 28 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/tagobjectinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "tagobjectinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | TagObjectInfo::TagObjectInfo() 7 | { 8 | } 9 | 10 | void TagObjectInfo::setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) 11 | { 12 | resultObject->setTagList(&tagList); 13 | } 14 | 15 | void TagObjectInfo::pushBackTag(const std::string * tag) 16 | { 17 | tagList.pushBackTag(tag); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/tagobjectinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef TAGOBJECTINFO_H 2 | #define TAGOBJECTINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | #include "taglist.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class TagObjectInfo : public UniversalObjectInterface 12 | { 13 | public: 14 | TagObjectInfo(); 15 | 16 | void setObjectToLinear(UniversalObjectInterface *bObject, real t, UniversalObjectInterface *resultObject) override; 17 | 18 | void pushBackTag(const std::string *tag); 19 | 20 | private: 21 | TagList tagList; 22 | }; 23 | 24 | } 25 | 26 | #endif // TAGOBJECTINFO_H 27 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/tagobjectinforeference.cpp: -------------------------------------------------------------------------------- 1 | #include "tagobjectinforeference.h" 2 | 3 | #include "taglist.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | TagObjectInfoReference::TagObjectInfoReference() : 9 | tagList(0) 10 | { 11 | } 12 | 13 | bool TagObjectInfoReference::tagIsActive(const std::string &tagToCheck) const 14 | { 15 | if (tagList) 16 | { 17 | return tagList->tagIsActive(tagToCheck); 18 | } 19 | else 20 | { 21 | return false; 22 | } 23 | } 24 | 25 | void TagObjectInfoReference::setTagList(TagList *newTagList) 26 | { 27 | tagList = newTagList; 28 | } 29 | 30 | void TagObjectInfoReference::setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance) 31 | { 32 | if (blendRatio >= 0.5) 33 | { 34 | aObject->setObjectToLinear(bObject, t, this); 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/tagobjectinforeference.h: -------------------------------------------------------------------------------- 1 | #ifndef TAGOBJECTINFOREFERENCE_H 2 | #define TAGOBJECTINFOREFERENCE_H 3 | 4 | #include 5 | 6 | #include "universalobjectinterface.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class TagList; 12 | class TagObjectInfoReference : public UniversalObjectInterface 13 | { 14 | public: 15 | TagObjectInfoReference(); 16 | 17 | bool tagIsActive(const std::string &tagToCheck) const override; 18 | 19 | void setTagList(TagList *newTagList) override; 20 | 21 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance = 0) override; 22 | 23 | private: 24 | const TagList *tagList; 25 | }; 26 | 27 | } 28 | 29 | #endif // TAGOBJECTINFOREFERENCE_H 30 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/triggerobjectinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "triggerobjectinfo.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | TriggerObjectInfo::TriggerObjectInfo() : 7 | triggerCount(0) 8 | { 9 | } 10 | 11 | int TriggerObjectInfo::getTriggerCount() 12 | { 13 | return triggerCount; 14 | } 15 | 16 | void TriggerObjectInfo::setTriggerCount(int newTriggerCount) 17 | { 18 | triggerCount = newTriggerCount; 19 | } 20 | 21 | void TriggerObjectInfo::setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance) 22 | { 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /spriterengine/objectinfo/triggerobjectinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef TRIGGEROBJECTINFO_H 2 | #define TRIGGEROBJECTINFO_H 3 | 4 | #include "universalobjectinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class TriggerObjectInfo : public UniversalObjectInterface 10 | { 11 | public: 12 | TriggerObjectInfo(); 13 | 14 | int getTriggerCount() override; 15 | void setTriggerCount(int newTriggerCount) override; 16 | 17 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance * refInstance) override; 18 | 19 | // TODO: override play trigger to enable triggers to perform an action based on getTriggerCount() 20 | 21 | private: 22 | int triggerCount; 23 | }; 24 | 25 | } 26 | 27 | #endif // TRIGGEROBJECTINFO_H 28 | -------------------------------------------------------------------------------- /spriterengine/objectref/boneref.cpp: -------------------------------------------------------------------------------- 1 | #include "boneref.h" 2 | 3 | #include "../entity/entityinstancedata.h" 4 | 5 | #include "bonerefinstance.h" 6 | 7 | namespace SpriterEngine 8 | { 9 | 10 | BoneRef::BoneRef(int initialObjectId, int initialParentObjectId, TimelineKey *initialKey) : 11 | ObjectRef(initialObjectId, initialParentObjectId, initialKey) 12 | { 13 | } 14 | 15 | ObjectRefInstance *BoneRef::getNewSpecializedObjectRefInstance(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData, TransformProcessor *initialParentTransformer, UniversalObjectInterface *objectInstance) 16 | { 17 | return new BoneRefInstance(objectInstance, initialParentTransformer, entityInstanceData->getTransformer(id()), getKey()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /spriterengine/objectref/boneref.h: -------------------------------------------------------------------------------- 1 | #ifndef BONEREF_H 2 | #define BONEREF_H 3 | 4 | #include "objectref.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class TransformProcessor; 10 | 11 | class BoneRef : public ObjectRef 12 | { 13 | public: 14 | BoneRef(int initialObjectId, int initialParentObjectId, TimelineKey *initialKey); 15 | 16 | private: 17 | ObjectRefInstance *getNewSpecializedObjectRefInstance(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData, TransformProcessor *initialParentTransformer, UniversalObjectInterface *objectInstance) override; 18 | }; 19 | 20 | } 21 | 22 | #endif // BONEREF_H 23 | -------------------------------------------------------------------------------- /spriterengine/objectref/bonerefinstance.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "bonerefinstance.h" 4 | 5 | #include "../objectinfo/universalobjectinterface.h" 6 | 7 | namespace SpriterEngine 8 | { 9 | 10 | BoneRefInstance::BoneRefInstance(UniversalObjectInterface *initialResultObject, 11 | TransformProcessor *initialParentTransformer, 12 | TransformProcessor *initialSelfTransformer, 13 | TimelineKey *initialKey) : 14 | ObjectRefInstance(initialResultObject, initialParentTransformer, initialKey), 15 | transformProcessor(initialSelfTransformer) 16 | { 17 | } 18 | 19 | void BoneRefInstance::processTransform() 20 | { 21 | ObjectRefInstance::processTransform(); 22 | transformProcessor->setTrigFunctions(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /spriterengine/objectref/bonerefinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef BONEREFINSTANCE_H 2 | #define BONEREFINSTANCE_H 3 | 4 | #include "objectrefinstance.h" 5 | 6 | #include "transformprocessor.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class BoneRefInstance : public ObjectRefInstance 12 | { 13 | public: 14 | BoneRefInstance(UniversalObjectInterface *initialResultObject, 15 | TransformProcessor *initialParentTransformer, 16 | TransformProcessor *initialSelfTransformer, 17 | TimelineKey *initialKey); 18 | 19 | void processTransform() override; 20 | 21 | private: 22 | TransformProcessor *transformProcessor; 23 | }; 24 | 25 | } 26 | 27 | #endif // BONEREFINSTANCE_H 28 | -------------------------------------------------------------------------------- /spriterengine/objectref/entityref.cpp: -------------------------------------------------------------------------------- 1 | #include "entityref.h" 2 | 3 | #include "../global/settings.h" 4 | 5 | #include "../entity/entityinstance.h" 6 | 7 | #include "entityrefinstance.h" 8 | 9 | 10 | namespace SpriterEngine 11 | { 12 | 13 | EntityRef::EntityRef(int initialObjectId, int initialParentObjectId, TimelineKey *initialKey, int initialEntityId, int initialAnimationIndex) : 14 | ObjectRef(initialObjectId, initialParentObjectId, initialKey), 15 | entityId(initialEntityId), 16 | animationIndex(initialAnimationIndex) 17 | { 18 | } 19 | 20 | ObjectRefInstance *EntityRef::getNewSpecializedObjectRefInstance(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData, TransformProcessor *initialParentTransformer, UniversalObjectInterface *objectInstance) 21 | { 22 | EntityInstanceData *initialEntity = objectInstance->getEntity(entityId); 23 | if (!initialEntity) 24 | { 25 | Settings::error("EntityRef::getNewSpecializedObjectRefInstance - entity instance data with id - " + std::to_string(entityId) + " not found"); 26 | return 0; 27 | } 28 | return new EntityRefInstance(objectInstance, initialParentTransformer, getKey(), initialEntity, initialEntity->getAnimation(animationIndex)); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /spriterengine/objectref/entityref.h: -------------------------------------------------------------------------------- 1 | #ifndef ENTITYREF_H 2 | #define ENTITYREF_H 3 | 4 | #include "objectref.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class TransformProcessor; 10 | 11 | class EntityRef : public ObjectRef 12 | { 13 | public: 14 | EntityRef(int initialObjectId, int initialParentObjectId, TimelineKey *initialKey, int initialEntityId, int initialAnimationIndex); 15 | 16 | private: 17 | ObjectRefInstance *getNewSpecializedObjectRefInstance(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData, TransformProcessor *initialParentTransformer, UniversalObjectInterface *objectInstance) override; 18 | 19 | int entityId; 20 | int animationIndex; 21 | }; 22 | 23 | } 24 | 25 | #endif // ENTITYREF_H 26 | -------------------------------------------------------------------------------- /spriterengine/objectref/entityrefinstance.cpp: -------------------------------------------------------------------------------- 1 | #include "entityrefinstance.h" 2 | 3 | #include "../entity/entityinstance.h" 4 | 5 | #include "../animation/animationinstance.h" 6 | 7 | namespace SpriterEngine 8 | { 9 | 10 | EntityRefInstance::EntityRefInstance(UniversalObjectInterface *initialResultObject, 11 | TransformProcessor *initialParentTransformer, 12 | TimelineKey *initialKey, 13 | EntityInstanceData *initialEntity, 14 | AnimationInstance *initialAnimation) : 15 | ObjectRefInstance(initialResultObject, initialParentTransformer, initialKey), 16 | entity(initialEntity), 17 | animation(initialAnimation) 18 | { 19 | } 20 | 21 | void EntityRefInstance::preProcess() 22 | { 23 | resultObject()->setCurrentEntity(entity); 24 | resultObject()->setCurrentAnimation(animation); 25 | } 26 | 27 | void EntityRefInstance::process(real currentTime) 28 | { 29 | preProcess(); 30 | ObjectRefInstance::process(currentTime); 31 | resultObject()->reprocessCurrentTime(); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spriterengine/objectref/entityrefinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef ENTITYREFINSTANCE_H 2 | #define ENTITYREFINSTANCE_H 3 | 4 | #include "objectrefinstance.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class EntityInstanceData; 10 | class AnimationInstance; 11 | 12 | class EntityRefInstance : public ObjectRefInstance 13 | { 14 | public: 15 | EntityRefInstance(UniversalObjectInterface *initialResultObject, 16 | TransformProcessor *initialParentTransformer, 17 | TimelineKey *initialKey, 18 | EntityInstanceData *initialEntity, 19 | AnimationInstance *initialAnimation); 20 | 21 | void preProcess() override; 22 | void process(real currentTime) override; 23 | 24 | private: 25 | EntityInstanceData *entity; 26 | AnimationInstance *animation; 27 | }; 28 | 29 | } 30 | 31 | #endif // ENTITYREFINSTANCE_H 32 | -------------------------------------------------------------------------------- /spriterengine/objectref/objectref.h: -------------------------------------------------------------------------------- 1 | #ifndef OBJECTREF_H 2 | #define OBJECTREF_H 3 | 4 | namespace SpriterEngine 5 | { 6 | 7 | class ObjectRefInstance; 8 | class EntityInstance; 9 | class EntityInstanceData; 10 | class TransformProcessor; 11 | class TimelineKey; 12 | class UniversalObjectInterface; 13 | 14 | class ObjectRef 15 | { 16 | public: 17 | ObjectRef(int initialObjectId, int initialParentObjectId, TimelineKey *initialKey); 18 | virtual ~ObjectRef() {} 19 | 20 | ObjectRefInstance *getNewObjectRefInstance(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData); 21 | int id(); 22 | 23 | protected: 24 | TimelineKey *getKey(); 25 | 26 | private: 27 | virtual ObjectRefInstance *getNewSpecializedObjectRefInstance(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData, TransformProcessor *initialParentTransformer, UniversalObjectInterface *objectInstance); 28 | 29 | int objectId; 30 | int parentObjectId; 31 | 32 | TimelineKey *key; 33 | }; 34 | 35 | } 36 | 37 | #endif // OBJECTREF_H 38 | -------------------------------------------------------------------------------- /spriterengine/objectref/objectrefinstance.cpp: -------------------------------------------------------------------------------- 1 | #include "objectrefinstance.h" 2 | 3 | #include "../global/settings.h" 4 | 5 | #include "../entity/entityinstance.h" 6 | #include "../timeline/timelinekey.h" 7 | 8 | #include "../objectinfo/universalobjectinterface.h" 9 | 10 | #include "transformprocessor.h" 11 | 12 | namespace SpriterEngine 13 | { 14 | 15 | ObjectRefInstance::ObjectRefInstance(UniversalObjectInterface *initialResultObject, 16 | TransformProcessor *initialParentTransformer, 17 | TimelineKey *initialKey) : 18 | resultObjectInterface(initialResultObject), 19 | parentTransformer(initialParentTransformer), 20 | key(initialKey) 21 | { 22 | } 23 | 24 | void ObjectRefInstance::preProcess() 25 | { 26 | } 27 | 28 | void ObjectRefInstance::process(real currentTime) 29 | { 30 | processKey(currentTime); 31 | processTransform(); 32 | } 33 | 34 | void ObjectRefInstance::processKey(real currentTime) 35 | { 36 | key->process(currentTime, resultObjectInterface); 37 | } 38 | 39 | void ObjectRefInstance::blendKey(real currentTime, real blendRatio) 40 | { 41 | key->blend(currentTime, blendRatio, resultObjectInterface, this); 42 | } 43 | 44 | void ObjectRefInstance::processTransform() 45 | { 46 | if (parentTransformer) 47 | { 48 | parentTransformer->transformChildObject(resultObjectInterface); 49 | } 50 | else 51 | { 52 | Settings::error("ObjectRefInstance::processTransform - parent transform processor missing"); 53 | } 54 | } 55 | 56 | UniversalObjectInterface *ObjectRefInstance::resultObject() const 57 | { 58 | return resultObjectInterface; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /spriterengine/objectref/objectrefinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef OBJECTREFINSTANCE_H 2 | #define OBJECTREFINSTANCE_H 3 | 4 | #include "../global/global.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class EntityInstance; 10 | class UniversalObjectInterface; 11 | class TransformProcessor; 12 | class TimelineKey; 13 | 14 | class ObjectRefInstance 15 | { 16 | public: 17 | ObjectRefInstance(UniversalObjectInterface *initialResultObject, 18 | TransformProcessor *initialParentTransformer, 19 | TimelineKey *initialKey); 20 | virtual ~ObjectRefInstance() {} 21 | 22 | virtual void preProcess(); 23 | virtual void process(real currentTime); 24 | 25 | void processKey(real currentTime); 26 | void blendKey(real currentTime, real blendRatio); 27 | virtual void processTransform(); 28 | 29 | protected: 30 | UniversalObjectInterface *resultObject() const; 31 | 32 | private: 33 | UniversalObjectInterface *resultObjectInterface; 34 | TransformProcessor *parentTransformer; 35 | TimelineKey *key; 36 | }; 37 | 38 | } 39 | 40 | #endif // OBJECTREFINSTANCE_H 41 | -------------------------------------------------------------------------------- /spriterengine/objectref/spriteref.cpp: -------------------------------------------------------------------------------- 1 | #include "spriteref.h" 2 | 3 | #include "../entity/entityinstance.h" 4 | 5 | #include "spriterefinstance.h" 6 | 7 | namespace SpriterEngine 8 | { 9 | 10 | SpriteRef::SpriteRef(int initialObjectId, int initialParentObjectId, TimelineKey *initialKey, int initialFileId, bool initialUseDefaultPivot) : 11 | ObjectRef(initialObjectId, initialParentObjectId, initialKey), 12 | fileId(initialFileId), 13 | useDefaultPivot(initialUseDefaultPivot) 14 | { 15 | } 16 | 17 | ObjectRefInstance *SpriteRef::getNewSpecializedObjectRefInstance(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData, TransformProcessor *initialParentTransformer, UniversalObjectInterface *objectInstance) 18 | { 19 | return new SpriteRefInstance(objectInstance, initialParentTransformer, getKey(), entityInstance->getFile(fileId), useDefaultPivot); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /spriterengine/objectref/spriteref.h: -------------------------------------------------------------------------------- 1 | #ifndef SPRITEREF_H 2 | #define SPRITEREF_H 3 | 4 | #include "objectref.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class TransformProcessor; 10 | 11 | class SpriteRef : public ObjectRef 12 | { 13 | public: 14 | SpriteRef(int initialObjectId, int initialParentObjectId, TimelineKey *initialKey, int initialFileId, bool initialUseDefaultPivot); 15 | 16 | private: 17 | ObjectRefInstance *getNewSpecializedObjectRefInstance(EntityInstance *entityInstance, EntityInstanceData *entityInstanceData, TransformProcessor *initialParentTransformer, UniversalObjectInterface *objectInstance) override; 18 | 19 | int fileId; 20 | bool useDefaultPivot; 21 | }; 22 | 23 | } 24 | 25 | #endif // SPRITEREF_H 26 | -------------------------------------------------------------------------------- /spriterengine/objectref/spriterefinstance.cpp: -------------------------------------------------------------------------------- 1 | #include "spriterefinstance.h" 2 | 3 | #include "../objectinfo/universalobjectinterface.h" 4 | #include "../file/filereference.h" 5 | #include "../override/imagefile.h" 6 | 7 | namespace SpriterEngine 8 | { 9 | 10 | SpriteRefInstance::SpriteRefInstance(UniversalObjectInterface *initialResultObject, 11 | TransformProcessor *initialParentTransformer, 12 | TimelineKey *initialKey, 13 | FileReference *initialImageRef, 14 | bool initialUseDefaultPivotPoint) : 15 | ObjectRefInstance(initialResultObject, initialParentTransformer, initialKey), 16 | imageRef(initialImageRef), 17 | useDefaultPivot(initialUseDefaultPivotPoint) 18 | { 19 | } 20 | 21 | void SpriteRefInstance::preProcess() 22 | { 23 | resultObject()->setImage(imageRef->image()); 24 | if (useDefaultPivot && imageRef->image()) 25 | { 26 | resultObject()->setPivot(imageRef->image()->defaultPivot); 27 | } 28 | } 29 | 30 | void SpriteRefInstance::process(real currentTime) 31 | { 32 | preProcess(); 33 | ObjectRefInstance::process(currentTime); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /spriterengine/objectref/spriterefinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef SPRITEREFINSTANCE_H 2 | #define SPRITEREFINSTANCE_H 3 | 4 | #include "objectrefinstance.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class FileReference; 10 | 11 | class SpriteRefInstance : public ObjectRefInstance 12 | { 13 | public: 14 | SpriteRefInstance(UniversalObjectInterface *initialResultObject, 15 | TransformProcessor *initialParentTransformer, 16 | TimelineKey *initialKey, 17 | FileReference *initialImageRef, 18 | bool initialUseDefaultPivotPoint); 19 | 20 | void preProcess() override; 21 | void process(real currentTime) override; 22 | 23 | private: 24 | FileReference *imageRef; 25 | bool useDefaultPivot; 26 | }; 27 | 28 | } 29 | 30 | #endif // SPRITEREFINSTANCE_H 31 | -------------------------------------------------------------------------------- /spriterengine/objectref/transformprocessor.cpp: -------------------------------------------------------------------------------- 1 | #include "transformprocessor.h" 2 | 3 | #include 4 | 5 | #include "../objectinfo/universalobjectinterface.h" 6 | 7 | namespace SpriterEngine 8 | { 9 | 10 | TransformProcessor::TransformProcessor(UniversalObjectInterface *hostParentObject) : 11 | parentObject(hostParentObject), 12 | angleSin(0), 13 | angleCos(1) 14 | 15 | { 16 | } 17 | 18 | void TransformProcessor::setTrigFunctions() 19 | { 20 | angleSin = std::sin(parentObject->getAngle()); 21 | angleCos = std::cos(parentObject->getAngle()); 22 | } 23 | 24 | void TransformProcessor::transformChildObject(UniversalObjectInterface *childObject) const 25 | { 26 | point parentScale = parentObject->getScale(); 27 | childObject->setScale(multiply(childObject->getScale(), parentScale)); 28 | if (parentScale.x*parentScale.y < 0) 29 | { 30 | childObject->setAngle( - childObject->getAngle()); 31 | } 32 | childObject->setAngle(childObject->getAngle() + parentObject->getAngle()); 33 | childObject->setAlpha(childObject->getAlpha()*parentObject->getAlpha()); 34 | point childPosition = childObject->getPosition(); 35 | point preMult = multiply(childPosition, parentScale); 36 | childPosition.x = (preMult.x * angleCos) - (preMult.y * angleSin); 37 | childPosition.y = (preMult.x * angleSin) + (preMult.y * angleCos); 38 | childObject->setPosition(add(childPosition, parentObject->getPosition())); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /spriterengine/objectref/transformprocessor.h: -------------------------------------------------------------------------------- 1 | #ifndef TRANSFORMPROCESSOR_H 2 | #define TRANSFORMPROCESSOR_H 3 | 4 | #include "../global/global.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class UniversalObjectInterface; 10 | 11 | class TransformProcessor 12 | { 13 | public: 14 | TransformProcessor(UniversalObjectInterface *hostParentObject); 15 | 16 | void setTrigFunctions(); 17 | void transformChildObject(UniversalObjectInterface *childObject) const; 18 | 19 | private: 20 | UniversalObjectInterface *parentObject; 21 | real angleSin; 22 | real angleCos; 23 | }; 24 | 25 | } 26 | 27 | #endif // TRANSFORMPROCESSOR_H 28 | -------------------------------------------------------------------------------- /spriterengine/override/atlasfile.cpp: -------------------------------------------------------------------------------- 1 | #include "atlasfile.h" 2 | 3 | #include "../objectinfo/universalobjectinterface.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | AtlasFile::AtlasFile(std::string initialFilePath) : 9 | File(initialFilePath) 10 | { 11 | } 12 | 13 | AtlasFile *AtlasFile::atlasFile() 14 | { 15 | return this; 16 | } 17 | 18 | void AtlasFile::renderSprite(SpriterEngine::UniversalObjectInterface *spriteInfo, const atlasframedata data) 19 | { 20 | // TODO: override and add custom rendering code here using: 21 | 22 | // spriteInfo->getAlpha() 23 | // spriteInfo->getPosition() 24 | // spriteInfo->getAngle() 25 | // spriteInfo->getScale() 26 | // spriteInfo->getPivot() 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /spriterengine/override/atlasfile.h: -------------------------------------------------------------------------------- 1 | #ifndef ATLASFILE_H 2 | #define ATLASFILE_H 3 | 4 | #include 5 | 6 | #include "../file/file.h" 7 | 8 | #include "../global/global.h" 9 | #include "../global/atlas.h" 10 | 11 | namespace SpriterEngine 12 | { 13 | class UniversalObjectInterface; 14 | class AtlasFile; 15 | 16 | class AtlasFile : public File 17 | { 18 | public: 19 | AtlasFile(std::string initialFilePath); 20 | 21 | AtlasFile *atlasFile() override; 22 | 23 | virtual void renderSprite(UniversalObjectInterface *spriteInfo, const atlasframedata data); 24 | }; 25 | 26 | } 27 | 28 | #endif // ATLASFILE_H 29 | -------------------------------------------------------------------------------- /spriterengine/override/filefactory.cpp: -------------------------------------------------------------------------------- 1 | #include "filefactory.h" 2 | 3 | #include "imagefile.h" 4 | #include "soundfile.h" 5 | #include "atlasfile.h" 6 | 7 | #include "spriterfiledocumentwrapper.h" 8 | 9 | namespace SpriterEngine 10 | { 11 | 12 | FileFactory::FileFactory() 13 | { 14 | } 15 | 16 | FileFactory::~FileFactory() 17 | { 18 | } 19 | 20 | ImageFile * FileFactory::newImageFile(const std::string &initialFilePath, point initialDefaultPivot, atlasdata atlasData) 21 | { 22 | return new ImageFile(initialFilePath, initialDefaultPivot); 23 | } 24 | 25 | SoundFile * FileFactory::newSoundFile(const std::string &initialFilePath) 26 | { 27 | return new SoundFile(initialFilePath); 28 | } 29 | 30 | AtlasFile *FileFactory::newAtlasFile(const std::string &initialFilePath) 31 | { 32 | return new AtlasFile(initialFilePath); 33 | } 34 | 35 | SpriterFileDocumentWrapper * FileFactory::newScmlDocumentWrapper() 36 | { 37 | return 0; 38 | } 39 | 40 | SpriterFileDocumentWrapper * FileFactory::newSconDocumentWrapper() 41 | { 42 | return 0; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /spriterengine/override/filefactory.h: -------------------------------------------------------------------------------- 1 | #ifndef FILEFACTORY_H 2 | #define FILEFACTORY_H 3 | 4 | #include 5 | 6 | #include "../global/global.h" 7 | #include "../global/atlas.h" 8 | 9 | namespace SpriterEngine 10 | { 11 | 12 | class ImageFile; 13 | class SoundFile; 14 | class AtlasFile; 15 | class SpriterFileDocumentWrapper; 16 | 17 | class FileFactory 18 | { 19 | public: 20 | FileFactory(); 21 | virtual ~FileFactory(); 22 | 23 | virtual ImageFile *newImageFile(const std::string &initialFilePath, point initialDefaultPivot, atlasdata atlasData); 24 | virtual SoundFile *newSoundFile(const std::string &initialFilePath); 25 | virtual AtlasFile *newAtlasFile(const std::string &initialFilePath); 26 | 27 | virtual SpriterFileDocumentWrapper *newScmlDocumentWrapper(); 28 | virtual SpriterFileDocumentWrapper *newSconDocumentWrapper(); 29 | }; 30 | 31 | } 32 | 33 | #endif // FILEFACTORY_H 34 | -------------------------------------------------------------------------------- /spriterengine/override/imagefile.cpp: -------------------------------------------------------------------------------- 1 | #include "imagefile.h" 2 | 3 | #include "../objectinfo/universalobjectinterface.h" 4 | #include "atlasfile.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | ImageFile::ImageFile(std::string initialFilePath, point initialDefaultPivot) : 10 | File(initialFilePath), 11 | defaultPivot(initialDefaultPivot), atlasFile(0), atlasFrameData() 12 | { 13 | } 14 | 15 | ImageFile *ImageFile::imageFile() 16 | { 17 | return this; 18 | } 19 | 20 | void ImageFile::setAtlasFile(AtlasFile *initialAtlasFile, atlasframedata initialAtlasFrameData) 21 | { 22 | // TODO: if you override, call ImageFile::setAtlasFile(initialAtlasFile, initialAtlasFrameData) first 23 | atlasFile = initialAtlasFile; 24 | atlasFrameData = initialAtlasFrameData; 25 | } 26 | 27 | void ImageFile::renderSprite(UniversalObjectInterface * spriteInfo) 28 | { 29 | if(atlasFile) { 30 | atlasFile->renderSprite(spriteInfo, atlasFrameData); 31 | } 32 | // TODO: override and add custom rendering code here using: 33 | 34 | // spriteInfo->getAlpha() 35 | // spriteInfo->getPosition() 36 | // spriteInfo->getAngle() 37 | // spriteInfo->getScale() 38 | // spriteInfo->getPivot() 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /spriterengine/override/imagefile.h: -------------------------------------------------------------------------------- 1 | #ifndef IMAGEFILE_H 2 | #define IMAGEFILE_H 3 | 4 | #include 5 | 6 | #include "../file/file.h" 7 | 8 | #include "../global/global.h" 9 | #include "../global/atlas.h" 10 | 11 | namespace SpriterEngine 12 | { 13 | class UniversalObjectInterface; 14 | class AtlasFile; 15 | 16 | class ImageFile : public File 17 | { 18 | public: 19 | ImageFile(std::string initialFilePath, point initialDefaultPivot); 20 | 21 | ImageFile *imageFile() override; 22 | 23 | virtual void setAtlasFile(AtlasFile* initialAtlasFile, atlasframedata initialAtlasFrameData); 24 | 25 | point defaultPivot; 26 | 27 | virtual void renderSprite(UniversalObjectInterface *spriteInfo); 28 | 29 | protected: 30 | AtlasFile* atlasFile; 31 | atlasframedata atlasFrameData; 32 | }; 33 | 34 | } 35 | 36 | #endif // IMAGEFILE_H 37 | -------------------------------------------------------------------------------- /spriterengine/override/objectfactory.cpp: -------------------------------------------------------------------------------- 1 | #include "objectfactory.h" 2 | 3 | #include "../objectinfo/pointinstanceinfo.h" 4 | #include "../objectinfo/boneinstanceinfo.h" 5 | #include "../objectinfo/boxinstanceinfo.h" 6 | #include "../objectinfo/triggerobjectinfo.h" 7 | #include "../objectinfo/spriteobjectinfo.h" 8 | 9 | namespace SpriterEngine 10 | { 11 | 12 | ObjectFactory::ObjectFactory() 13 | { 14 | } 15 | 16 | PointInstanceInfo * ObjectFactory::newPointInstanceInfo() 17 | { 18 | return new PointInstanceInfo(); 19 | } 20 | 21 | BoneInstanceInfo * ObjectFactory::newBoneInstanceInfo(point size) 22 | { 23 | return new BoneInstanceInfo(size); 24 | } 25 | 26 | BoxInstanceInfo * ObjectFactory::newBoxInstanceInfo(point size) 27 | { 28 | return new BoxInstanceInfo(size); 29 | } 30 | 31 | TriggerObjectInfo * ObjectFactory::newTriggerObjectInfo(std::string newTriggerName) 32 | { 33 | return new TriggerObjectInfo(); 34 | } 35 | 36 | SpriteObjectInfo *ObjectFactory::newSpriteObjectinfo() 37 | { 38 | return new SpriteObjectInfo(); 39 | } 40 | } -------------------------------------------------------------------------------- /spriterengine/override/objectfactory.h: -------------------------------------------------------------------------------- 1 | #ifndef OBJECTFACTORY_H 2 | #define OBJECTFACTORY_H 3 | 4 | #include 5 | 6 | #include "../global/global.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | class PointInstanceInfo; 11 | class BoneInstanceInfo; 12 | class BoxInstanceInfo; 13 | class TriggerObjectInfo; 14 | class SpriteObjectInfo; 15 | 16 | class ObjectFactory 17 | { 18 | public: 19 | ObjectFactory(); 20 | virtual ~ObjectFactory() {} 21 | 22 | // TODO: Override along with PointObjectInfo::render() to allow debug display of point objects; 23 | virtual PointInstanceInfo *newPointInstanceInfo(); 24 | 25 | // TODO: Override along with BoneObjectInfo::render() to allow debug display of bone objects; 26 | virtual BoneInstanceInfo *newBoneInstanceInfo(point size); 27 | 28 | // TODO: Override along with BoxObjectInfo::render() to allow debug display of box objects; 29 | virtual BoxInstanceInfo *newBoxInstanceInfo(point size); 30 | 31 | // TODO: Override along with TriggerObjectInfo::playTrigger() to allow for triggering actions; 32 | virtual TriggerObjectInfo *newTriggerObjectInfo(std::string triggerName); 33 | 34 | // TODO: Override along with SpriteObjectInfo::render() if you need to manage sprite as objects; 35 | virtual SpriteObjectInfo *newSpriteObjectinfo(); 36 | }; 37 | 38 | } 39 | 40 | #endif // OBJECTFACTORY_H 41 | -------------------------------------------------------------------------------- /spriterengine/override/soundfile.cpp: -------------------------------------------------------------------------------- 1 | #include "soundfile.h" 2 | 3 | #include "soundobjectinforeference.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | SoundFile::SoundFile(std::string initialFilePath) : 8 | File(initialFilePath) 9 | { 10 | } 11 | 12 | SoundFile *SoundFile::soundFile() 13 | { 14 | return this; 15 | } 16 | 17 | SoundObjectInfoReference * SoundFile::newSoundInfoReference() 18 | { 19 | return new SoundObjectInfoReference(); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /spriterengine/override/soundfile.h: -------------------------------------------------------------------------------- 1 | #ifndef SOUNDFILE_H 2 | #define SOUNDFILE_H 3 | 4 | #include "../file/file.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | class SoundObjectInfoReference; 9 | class SoundFile : public File 10 | { 11 | public: 12 | SoundFile(std::string initialFilePath); 13 | 14 | SoundFile *soundFile(); 15 | 16 | // override to create a custom sound object that can playback sound with void playTrigger(); 17 | virtual SoundObjectInfoReference *newSoundInfoReference(); 18 | }; 19 | 20 | } 21 | 22 | #endif // SOUNDFILE_H 23 | -------------------------------------------------------------------------------- /spriterengine/override/soundobjectinforeference.h: -------------------------------------------------------------------------------- 1 | #ifndef SOUNDOBJECTINFOREFERENCE_H 2 | #define SOUNDOBJECTINFOREFERENCE_H 3 | 4 | #include "../objectinfo/universalobjectinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class FileReference; 10 | 11 | class SoundObjectInfoReference : public UniversalObjectInterface 12 | { 13 | public: 14 | SoundObjectInfoReference(); 15 | 16 | int getTriggerCount() override; 17 | 18 | real getVolume() override; 19 | real getPanning() override; 20 | 21 | void setTriggerCount(int newTriggerCount) override; 22 | 23 | void setVolume(real newVolume) override; 24 | void setPanning(real newPanning) override; 25 | 26 | // TODO: override playTrigger() to play back sound using getTriggerCount() to determine whether to play; 27 | 28 | void setToBlendedLinear(UniversalObjectInterface *aObject, UniversalObjectInterface *bObject, real t, real blendRatio, ObjectRefInstance *blendedRefInstance = 0) override; 29 | 30 | private: 31 | virtual void setPlaybackVolume(); 32 | virtual void setPlaybackPanning(); 33 | 34 | real volume; 35 | real panning; 36 | 37 | int triggerCount; 38 | }; 39 | 40 | } 41 | 42 | #endif // SOUNDOBJECTINFOREFERENCE_H 43 | -------------------------------------------------------------------------------- /spriterengine/override/spriterfileattributewrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "spriterfileattributewrapper.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | SpriterFileAttributeWrapper::SpriterFileAttributeWrapper() 7 | { 8 | } 9 | 10 | SpriterFileAttributeWrapper::~SpriterFileAttributeWrapper() 11 | { 12 | } 13 | } -------------------------------------------------------------------------------- /spriterengine/override/spriterfileattributewrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef SPRITERFILEATTRIBUTEWRAPPER_H 2 | #define SPRITERFILEATTRIBUTEWRAPPER_H 3 | 4 | #include "../global/global.h" 5 | 6 | #include 7 | 8 | namespace SpriterEngine 9 | { 10 | class SpriterFileAttributeWrapper 11 | { 12 | public: 13 | SpriterFileAttributeWrapper(); 14 | virtual ~SpriterFileAttributeWrapper(); 15 | 16 | virtual std::string getName() = 0; 17 | 18 | virtual bool isValid() = 0; 19 | 20 | virtual real getRealValue() = 0; 21 | virtual int getIntValue() = 0; 22 | virtual std::string getStringValue() = 0; 23 | 24 | virtual void advanceToNextAttribute() = 0; 25 | }; 26 | 27 | } 28 | 29 | #endif // SPRITERFILEATTRIBUTEWRAPPER_H -------------------------------------------------------------------------------- /spriterengine/override/spriterfiledocumentwrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "spriterfiledocumentwrapper.h" 2 | 3 | #include "spriterfileelementwrapper.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | SpriterFileDocumentWrapper::SpriterFileDocumentWrapper() 8 | { 9 | } 10 | 11 | SpriterFileDocumentWrapper::~SpriterFileDocumentWrapper() 12 | { 13 | for (auto& it : childElements) 14 | { 15 | delete it; 16 | } 17 | } 18 | 19 | SpriterFileElementWrapper * SpriterFileDocumentWrapper::getFirstChildElement() 20 | { 21 | childElements.push_back(newElementWrapperFromFirstElement()); 22 | return childElements.back(); 23 | } 24 | 25 | SpriterFileElementWrapper * SpriterFileDocumentWrapper::getFirstChildElement(std::string elementName) 26 | { 27 | childElements.push_back(newElementWrapperFromFirstElement(elementName)); 28 | return childElements.back(); 29 | } 30 | } -------------------------------------------------------------------------------- /spriterengine/override/spriterfiledocumentwrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef SPRITERFILEDOCUMENTWRAPPER_H 2 | #define SPRITERFILEDOCUMENTWRAPPER_H 3 | 4 | #include 5 | #include 6 | 7 | namespace SpriterEngine 8 | { 9 | class SpriterFileElementWrapper; 10 | 11 | typedef std::vector ElementVector; 12 | 13 | class SpriterFileDocumentWrapper 14 | { 15 | public: 16 | SpriterFileDocumentWrapper(); 17 | 18 | virtual ~SpriterFileDocumentWrapper(); 19 | 20 | virtual void loadFile(std::string fileName) = 0; 21 | 22 | SpriterFileElementWrapper *getFirstChildElement(); 23 | SpriterFileElementWrapper *getFirstChildElement(std::string elementName); 24 | 25 | private: 26 | virtual SpriterFileElementWrapper *newElementWrapperFromFirstElement() = 0; 27 | virtual SpriterFileElementWrapper *newElementWrapperFromFirstElement(const std::string & elementName) = 0; 28 | 29 | ElementVector childElements; 30 | 31 | }; 32 | 33 | } 34 | 35 | #endif // SPRITERFILEDOCUMENTWRAPPER_H -------------------------------------------------------------------------------- /spriterengine/spriterengine.h: -------------------------------------------------------------------------------- 1 | #ifndef SPRITERENGINE_H 2 | #define SPRITERENGINE_H 3 | 4 | #include "model/spritermodel.h" 5 | #include "entity/entityinstance.h" 6 | 7 | #endif // SPRITERENGINE_H -------------------------------------------------------------------------------- /spriterengine/timeinfo/beziereasingcurve.h: -------------------------------------------------------------------------------- 1 | #ifndef BEZIEREASINGCURVE_H 2 | #define BEZIEREASINGCURVE_H 3 | 4 | #include "easingcurveinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class BezierEasingCurve : public EasingCurveInterface 10 | { 11 | public: 12 | BezierEasingCurve(real initialX1, real initialY1, real initialX2, real initialY2); 13 | 14 | real adjustedTimeRatio(real timeRatio) override; 15 | 16 | EasingCurveInterface *clone() override; 17 | 18 | private: 19 | real sampleCurve(real a, real b, real c, real t) const; 20 | real sampleCurveDerivativeX(real ax, real bx, real cx, real t) const; 21 | real solveEpsilon(real duration) const; 22 | real solve(real ax, real bx, real cx, real ay, real by, real cy, real x, real epsilon) const; 23 | real solveCurveX(real ax, real bx, real cx, real x, real epsilon) const; 24 | real cubicBezierAtTime(real t) const; 25 | 26 | real x1; 27 | real y1; 28 | real x2; 29 | real y2; 30 | }; 31 | 32 | } 33 | 34 | #endif // BEZIEREASINGCURVE_H 35 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/cubiceasingcurve.cpp: -------------------------------------------------------------------------------- 1 | #include "cubiceasingcurve.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | CubicEasingCurve::CubicEasingCurve(SpriterEngine::real initialC0, SpriterEngine::real initialC1) : 7 | c0(initialC0), 8 | c1(initialC1) 9 | { 10 | } 11 | 12 | real CubicEasingCurve::adjustedTimeRatio(real timeRatio) 13 | { 14 | return cubic(0, c0, c1, 1, timeRatio); 15 | } 16 | 17 | EasingCurveInterface * CubicEasingCurve::clone() 18 | { 19 | return new CubicEasingCurve(c0, c1); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/cubiceasingcurve.h: -------------------------------------------------------------------------------- 1 | #ifndef CUBICEASINGCURVE_H 2 | #define CUBICEASINGCURVE_H 3 | 4 | #include "easingcurveinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class CubicEasingCurve : public EasingCurveInterface 10 | { 11 | public: 12 | CubicEasingCurve(real initialC0, real initialC1); 13 | 14 | real adjustedTimeRatio(real timeRatio) override; 15 | 16 | EasingCurveInterface *clone() override; 17 | 18 | private: 19 | real c0; 20 | real c1; 21 | }; 22 | 23 | } 24 | 25 | #endif // CUBICEASINGCURVE_H 26 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/easingcurveinterface.cpp: -------------------------------------------------------------------------------- 1 | #include "easingcurveinterface.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | EasingCurveInterface::EasingCurveInterface() 7 | { 8 | } 9 | 10 | EasingCurveInterface::~EasingCurveInterface() 11 | { 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/easingcurveinterface.h: -------------------------------------------------------------------------------- 1 | #ifndef EASINGCURVEINTERFACE_H 2 | #define EASINGCURVEINTERFACE_H 3 | 4 | #include "../global/global.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class EasingCurveInterface 10 | { 11 | public: 12 | EasingCurveInterface(); 13 | virtual ~EasingCurveInterface(); 14 | 15 | virtual real adjustedTimeRatio(real timeRatio) = 0; 16 | 17 | virtual EasingCurveInterface *clone() = 0; 18 | }; 19 | 20 | } 21 | 22 | #endif // EASINGCURVEINTERFACE_H 23 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/instanteasingcurve.cpp: -------------------------------------------------------------------------------- 1 | #include "instanteasingcurve.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | InstantEasingCurve::InstantEasingCurve() 7 | { 8 | } 9 | 10 | 11 | SpriterEngine::real SpriterEngine::InstantEasingCurve::adjustedTimeRatio(SpriterEngine::real timeRatio) 12 | { 13 | if (timeRatio > 1) 14 | { 15 | return 1; 16 | } 17 | else 18 | { 19 | return 0; 20 | } 21 | } 22 | 23 | EasingCurveInterface * InstantEasingCurve::clone() 24 | { 25 | return new InstantEasingCurve(); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/instanteasingcurve.h: -------------------------------------------------------------------------------- 1 | #ifndef INSTANTEASINGCURVE_H 2 | #define INSTANTEASINGCURVE_H 3 | 4 | #include "easingcurveinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class InstantEasingCurve : public EasingCurveInterface 10 | { 11 | public: 12 | InstantEasingCurve(); 13 | 14 | real adjustedTimeRatio(real timeRatio) override; 15 | 16 | EasingCurveInterface *clone() override; 17 | }; 18 | 19 | } 20 | 21 | #endif // INSTANTEASINGCURVE_H 22 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/lineareasingcurve.cpp: -------------------------------------------------------------------------------- 1 | #include "lineareasingcurve.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | LinearEasingCurve::LinearEasingCurve() 7 | { 8 | } 9 | 10 | 11 | real LinearEasingCurve::adjustedTimeRatio(real timeRatio) 12 | { 13 | return timeRatio; 14 | } 15 | 16 | EasingCurveInterface * LinearEasingCurve::clone() 17 | { 18 | return new LinearEasingCurve(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/lineareasingcurve.h: -------------------------------------------------------------------------------- 1 | #ifndef LINEAREASINGCURVE_H 2 | #define LINEAREASINGCURVE_H 3 | 4 | #include "easingcurveinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class LinearEasingCurve : public EasingCurveInterface 10 | { 11 | public: 12 | LinearEasingCurve(); 13 | 14 | real adjustedTimeRatio(real timeRatio) override; 15 | 16 | EasingCurveInterface *clone() override; 17 | }; 18 | 19 | } 20 | 21 | #endif // LINEAREASINGCURVE_H 22 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/quadraticeasingcurve.cpp: -------------------------------------------------------------------------------- 1 | #include "quadraticeasingcurve.h" 2 | 3 | #include "../global/global.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | QuadraticEasingCurve::QuadraticEasingCurve(real initialC0) : 9 | c0(initialC0) 10 | { 11 | } 12 | 13 | real QuadraticEasingCurve::adjustedTimeRatio(SpriterEngine::real timeRatio) 14 | { 15 | return quadratic(0, c0, 1, timeRatio); 16 | } 17 | 18 | EasingCurveInterface * QuadraticEasingCurve::clone() 19 | { 20 | return new QuadraticEasingCurve(c0); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/quadraticeasingcurve.h: -------------------------------------------------------------------------------- 1 | #ifndef QUADRATICEASINGCURVE_H 2 | #define QUADRATICEASINGCURVE_H 3 | 4 | #include "easingcurveinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class QuadraticEasingCurve : public EasingCurveInterface 10 | { 11 | public: 12 | QuadraticEasingCurve(real initialC0); 13 | 14 | real adjustedTimeRatio(real timeRatio) override; 15 | 16 | EasingCurveInterface *clone() override; 17 | 18 | private: 19 | real c0; 20 | }; 21 | 22 | } 23 | 24 | #endif // QUADRATICEASINGCURVE_H 25 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/quarticeasingcurve.cpp: -------------------------------------------------------------------------------- 1 | #include "quarticeasingcurve.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | QuarticEasingCurve::QuarticEasingCurve(real initialC0, real initialC1, real initialC2) : 7 | c0(initialC0), 8 | c1(initialC1), 9 | c2(initialC2) 10 | { 11 | } 12 | 13 | 14 | SpriterEngine::real SpriterEngine::QuarticEasingCurve::adjustedTimeRatio(SpriterEngine::real timeRatio) 15 | { 16 | return quartic(0, c0, c1, c2, 1, timeRatio); 17 | } 18 | 19 | EasingCurveInterface * QuarticEasingCurve::clone() 20 | { 21 | return new QuarticEasingCurve(c0, c1, c2); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/quarticeasingcurve.h: -------------------------------------------------------------------------------- 1 | #ifndef QUARTICEASINGCURVE_H 2 | #define QUARTICEASINGCURVE_H 3 | 4 | #include "easingcurveinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class QuarticEasingCurve : public EasingCurveInterface 10 | { 11 | public: 12 | QuarticEasingCurve(real initialC0, real initialC1, real initialC2); 13 | 14 | real adjustedTimeRatio(real timeRatio) override; 15 | 16 | EasingCurveInterface *clone() override; 17 | 18 | private: 19 | real c0; 20 | real c1; 21 | real c2; 22 | }; 23 | 24 | } 25 | 26 | #endif // QUARTICEASINGCURVE_H 27 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/quinticeasingcurve.cpp: -------------------------------------------------------------------------------- 1 | #include "quinticeasingcurve.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | 6 | QuinticEasingCurve::QuinticEasingCurve(real initialC0, real initialC1, real initialC2, real initialC3) : 7 | c0(initialC0), 8 | c1(initialC1), 9 | c2(initialC2), 10 | c3(initialC3) 11 | { 12 | } 13 | 14 | real QuinticEasingCurve::adjustedTimeRatio(real timeRatio) 15 | { 16 | return quintic(0, c0, c1, c2, c3, 1, timeRatio); 17 | } 18 | 19 | EasingCurveInterface * QuinticEasingCurve::clone() 20 | { 21 | return new QuinticEasingCurve(c0, c1, c2, c3); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/quinticeasingcurve.h: -------------------------------------------------------------------------------- 1 | #ifndef QUINTICEASINGCURVE_H 2 | #define QUINTICEASINGCURVE_H 3 | 4 | #include "easingcurveinterface.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class QuinticEasingCurve : public EasingCurveInterface 10 | { 11 | public: 12 | QuinticEasingCurve(real initialC0, real initialC1, real initialC2, real initialC3); 13 | 14 | real adjustedTimeRatio(real timeRatio) override; 15 | 16 | EasingCurveInterface *clone() override; 17 | 18 | private: 19 | real c0; 20 | real c1; 21 | real c2; 22 | real c3; 23 | }; 24 | 25 | } 26 | 27 | #endif // QUINTICEASINGCURVE_H 28 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/timeinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "timeinfo.h" 2 | 3 | #include "easingcurveinterface.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | TimeInfo::TimeInfo(real initialTime, real initialNextTime, EasingCurveInterface *initialEasingCurve) : 9 | time(initialTime), 10 | nextTime(initialNextTime), 11 | easingCurve(initialEasingCurve) 12 | { 13 | } 14 | 15 | TimeInfo::~TimeInfo() 16 | { 17 | delete easingCurve; 18 | } 19 | 20 | real TimeInfo::getTime() 21 | { 22 | return time; 23 | } 24 | 25 | real TimeInfo::getNextTime() 26 | { 27 | return nextTime; 28 | } 29 | 30 | bool TimeInfo::timeInRange(real timeToCheck) 31 | { 32 | return time <= timeToCheck && timeToCheck < nextTime; 33 | } 34 | 35 | real TimeInfo::getTimeRatio(real currentTime) 36 | { 37 | return easingCurve->adjustedTimeRatio(inverseLinear(time, nextTime, currentTime)); 38 | } 39 | 40 | real TimeInfo::getEasedTime(real currentTime) 41 | { 42 | return linear(time, nextTime, getTimeRatio(currentTime)); 43 | } 44 | 45 | TimeInfo * TimeInfo::cloneWithNewTimes(real initialTime, real initialNextTime) 46 | { 47 | return new TimeInfo(initialTime, initialNextTime, easingCurve->clone()); 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /spriterengine/timeinfo/timeinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef TIMEINFO_H 2 | #define TIMEINFO_H 3 | 4 | #include "../global/global.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class EasingCurveInterface; 10 | 11 | class TimeInfo 12 | { 13 | public: 14 | TimeInfo(real initialTime, real initialNextTime, EasingCurveInterface *initialEasingCurve); 15 | ~TimeInfo(); 16 | 17 | real getTime(); 18 | real getNextTime(); 19 | bool timeInRange(real timeToCheck); 20 | real getTimeRatio(real currentTime); 21 | 22 | real getEasedTime(real currentTime); 23 | 24 | TimeInfo *cloneWithNewTimes(real initialTime, real initialNextTime); 25 | 26 | private: 27 | real time; 28 | real nextTime; 29 | 30 | EasingCurveInterface *easingCurve; 31 | }; 32 | 33 | } 34 | 35 | #endif // TIMEINFO_H 36 | -------------------------------------------------------------------------------- /spriterengine/timeline/proxytimelinekey.cpp: -------------------------------------------------------------------------------- 1 | #include "proxytimelinekey.h" 2 | 3 | namespace SpriterEngine 4 | { 5 | ProxyTimelineKey::ProxyTimelineKey(TimeInfo * initialTimeInfo, UniversalObjectInterface * initialObjectInfo, UniversalObjectInterface * initialNextObjectInfo) : 6 | TimelineKey(initialTimeInfo, initialObjectInfo) 7 | { 8 | setNextObjectInfo(initialNextObjectInfo); 9 | } 10 | 11 | ProxyTimelineKey::~ProxyTimelineKey() 12 | { 13 | objectInfo = 0; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spriterengine/timeline/proxytimelinekey.h: -------------------------------------------------------------------------------- 1 | #ifndef PROXYTIMELINEKEY_H 2 | #define PROXYTIMELINEKEY_H 3 | 4 | #include "timelinekey.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class ProxyTimelineKey : public TimelineKey 10 | { 11 | public: 12 | ProxyTimelineKey(TimeInfo *initialTimeInfo, UniversalObjectInterface *initialObjectInfo, UniversalObjectInterface *initialNextObjectInfo); 13 | 14 | ~ProxyTimelineKey() override; 15 | }; 16 | 17 | } 18 | 19 | #endif // PROXYTIMELINEKEY_H 20 | -------------------------------------------------------------------------------- /spriterengine/timeline/soundtimelineinstance.cpp: -------------------------------------------------------------------------------- 1 | #include "soundtimelineinstance.h" 2 | 3 | #include "../entity/entityinstancedata.h" 4 | 5 | #include "timelinekey.h" 6 | 7 | namespace SpriterEngine 8 | { 9 | 10 | SoundTimelineInstance::SoundTimelineInstance(EntityInstanceData *entityInstanceData, Timeline *timeline, int objectId) : 11 | TriggerTimelineInstance(entityInstanceData, timeline) 12 | { 13 | resultObject = entityInstanceData->getSoundObject(objectId); 14 | } 15 | 16 | void SoundTimelineInstance::checkTrigger(TimelineKey *key, real aTime, real bTime) 17 | { 18 | if (key->getObjectInfo()->getTriggerCount() && aTime <= key->getTime() && key->getTime() < bTime) 19 | { 20 | triggerCount++; 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spriterengine/timeline/soundtimelineinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef SOUNDTIMELINEINSTANCE_H 2 | #define SOUNDTIMELINEINSTANCE_H 3 | 4 | #include "triggertimelineinstance.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class EntityInstanceData; 10 | class FileReference; 11 | 12 | class SoundTimelineInstance : public TriggerTimelineInstance 13 | { 14 | public: 15 | SoundTimelineInstance(EntityInstanceData *entityInstance, Timeline *timeline, int objectId); 16 | 17 | private: 18 | void checkTrigger(TimelineKey *key, real aTime, real bTime) override; 19 | }; 20 | 21 | } 22 | 23 | #endif // SOUNDTIMELINEINSTANCE_H 24 | -------------------------------------------------------------------------------- /spriterengine/timeline/tagtimelineinstance.cpp: -------------------------------------------------------------------------------- 1 | #include "tagtimelineinstance.h" 2 | 3 | #include "../entity/entityinstancedata.h" 4 | #include "../objectinfo/tagobjectinforeference.h" 5 | 6 | #include "timeline.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | TagTimelineInstance::TagTimelineInstance(EntityInstanceData *entityInstanceData, Timeline *timeline, int objectId) : 12 | TimelineInstance(timeline) 13 | { 14 | resultObject = entityInstanceData->getTags(objectId); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /spriterengine/timeline/tagtimelineinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef TAGTIMELINEINSTANCE_H 2 | #define TAGTIMELINEINSTANCE_H 3 | 4 | #include "timelineinstance.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class EntityInstanceData; 10 | 11 | class TagTimelineInstance : public TimelineInstance 12 | { 13 | public: 14 | TagTimelineInstance(EntityInstanceData *entityInstanceData, Timeline *timeline, int objectId); 15 | }; 16 | 17 | } 18 | 19 | #endif // TAGTIMELINEINSTANCE_H 20 | -------------------------------------------------------------------------------- /spriterengine/timeline/timeline.h: -------------------------------------------------------------------------------- 1 | #ifndef TIMELINE_H 2 | #define TIMELINE_H 3 | 4 | #include 5 | 6 | #include "timelinekey.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class TimelineInstance; 12 | 13 | typedef std::vector TimelineKeyVector; 14 | 15 | class Timeline 16 | { 17 | public: 18 | Timeline(int initialObjectId); 19 | ~Timeline(); 20 | 21 | int getObjectId(); 22 | 23 | TimelineKey *pushBackKey(TimeInfo *initialTimeInfo, UniversalObjectInterface *initialObjectInfo); 24 | 25 | TimelineKey * pushFrontProxyKey(real initialTime, real initialNextTime, bool isLooping); 26 | 27 | TimelineKey *getKey(int keyIndex); 28 | 29 | TimelineKey * getLastKey(); 30 | 31 | void setupTimelineInstance(TimelineKeyVector **keyInstances); 32 | 33 | private: 34 | int objectId; 35 | 36 | TimelineKeyVector keys; 37 | }; 38 | 39 | } 40 | 41 | #endif // TIMELINE_H 42 | -------------------------------------------------------------------------------- /spriterengine/timeline/timelineinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef TIMELINEINSTANCE_H 2 | #define TIMELINEINSTANCE_H 3 | 4 | #include 5 | 6 | #include "../global/global.h" 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class EntityInstance; 12 | class UniversalObjectInterface; 13 | class Timeline; 14 | class TimelineKey; 15 | 16 | typedef std::vector TimelineKeyVector; 17 | typedef TimelineKeyVector::iterator TimelineKeyVectorIterator; 18 | 19 | class TimelineInstance 20 | { 21 | public: 22 | TimelineInstance(Timeline *timeline); 23 | 24 | virtual ~TimelineInstance() = 0; 25 | 26 | virtual void findCurrentTimelineKey(real newTime, bool forward, real animationLength); 27 | virtual void processCurrentTimelineKey(real newTime); 28 | 29 | virtual void blendCurrentTimelineKey(real newTime, real blendRatio); 30 | 31 | protected: 32 | TimelineKeyVector *timelineKeys; 33 | TimelineKeyVectorIterator timelineKeyIterator; 34 | UniversalObjectInterface *resultObject; 35 | 36 | private: 37 | void findTimeForward(real newTime); 38 | void findTimeBackward(real newTime); 39 | }; 40 | 41 | } 42 | 43 | #endif // TIMELINEINSTANCE_H 44 | -------------------------------------------------------------------------------- /spriterengine/timeline/timelinekey.h: -------------------------------------------------------------------------------- 1 | #ifndef TIMELINEKEY_H 2 | #define TIMELINEKEY_H 3 | 4 | #include "../global/global.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class TimeInfo; 10 | class UniversalObjectInterface; 11 | class ObjectRefInstance; 12 | 13 | class TimelineKey 14 | { 15 | public: 16 | TimelineKey(TimeInfo *initialTimeInfo, UniversalObjectInterface *initialObjectInfo); 17 | virtual ~TimelineKey(); 18 | 19 | void process(real currentTime, UniversalObjectInterface *resultObject); 20 | 21 | void blend(real currentTime, real blendRatio, UniversalObjectInterface * resultObject, ObjectRefInstance *refInstance = 0); 22 | 23 | UniversalObjectInterface *getObjectInfo(); 24 | 25 | void setNextObjectInfo(UniversalObjectInterface *newNextObjectInfo); 26 | 27 | real getTime(); 28 | real getNextTime(); 29 | bool timeInRange(real timeToCheck); 30 | 31 | TimelineKey *newProxyKey(real newTime, real newNextTime, bool makeInstant); 32 | 33 | protected: 34 | UniversalObjectInterface *objectInfo; 35 | 36 | private: 37 | TimeInfo *time; 38 | UniversalObjectInterface *nextObjectInfo; 39 | }; 40 | 41 | } 42 | 43 | #endif // TIMELINEKEY_H 44 | -------------------------------------------------------------------------------- /spriterengine/timeline/triggertimelineinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef TRIGGERTIMELINEINSTANCE_H 2 | #define TRIGGERTIMELINEINSTANCE_H 3 | 4 | #include "timelineinstance.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class EntityInstanceData; 10 | 11 | class TriggerTimelineInstance : public TimelineInstance 12 | { 13 | public: 14 | TriggerTimelineInstance(EntityInstanceData *entityInstanceData, Timeline *timeline, int objectId); 15 | 16 | void findCurrentTimelineKey(real newTime, bool forward, real animationLength) override; 17 | 18 | void processCurrentTimelineKey(real newTime) override; 19 | 20 | protected: 21 | int triggerCount; 22 | 23 | TriggerTimelineInstance(EntityInstanceData *entityInstanceData, Timeline *timeline); 24 | 25 | private: 26 | void findTimeForward(real newTime, real animationLength); 27 | void findTimeBackward(real newTime, real animationLength); 28 | 29 | virtual void checkTrigger(TimelineKey * key, real aTime, real bTime); 30 | 31 | real previousTime; 32 | }; 33 | 34 | } 35 | 36 | #endif // TRIGGERTIMELINEINSTANCE_H 37 | -------------------------------------------------------------------------------- /spriterengine/timeline/variabletimelineinstance.cpp: -------------------------------------------------------------------------------- 1 | #include "variabletimelineinstance.h" 2 | 3 | #include "../entity/entityinstancedata.h" 4 | 5 | namespace SpriterEngine 6 | { 7 | 8 | VariableTimelineInstance::VariableTimelineInstance(EntityInstanceData *entityInstanceData, Timeline *timeline, int objectId, int initialVariableId) : 9 | TimelineInstance(timeline) 10 | { 11 | resultObject = entityInstanceData->getVariable(objectId, initialVariableId); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spriterengine/timeline/variabletimelineinstance.h: -------------------------------------------------------------------------------- 1 | #ifndef VARIABLETIMELINEINSTANCE_H 2 | #define VARIABLETIMELINEINSTANCE_H 3 | 4 | #include "timelineinstance.h" 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class EntityInstanceData; 10 | 11 | class VariableTimelineInstance : public TimelineInstance 12 | { 13 | public: 14 | VariableTimelineInstance(EntityInstanceData *entityInstanceData, Timeline *timeline, int objectId, int initialVariableId); 15 | }; 16 | 17 | } 18 | 19 | #endif // VARIABLETIMELINEINSTANCE_H 20 | -------------------------------------------------------------------------------- /spriterengine/variable/variable.h: -------------------------------------------------------------------------------- 1 | #ifndef VARIABLE_H 2 | #define VARIABLE_H 3 | 4 | #include 5 | 6 | namespace SpriterEngine 7 | { 8 | 9 | class UniversalObjectInterface; 10 | class Animation; 11 | 12 | class Variable 13 | { 14 | public: 15 | enum VariableType { 16 | VARIABLETYPE_STRING, 17 | VARIABLETYPE_INT, 18 | VARIABLETYPE_REAL 19 | }; 20 | 21 | Variable(std::string initialName, VariableType initialVariableType); 22 | ~Variable(); 23 | 24 | std::string getName() const; 25 | 26 | UniversalObjectInterface *getNewObjectInfoInstance(bool forEntityInstance = false) const; 27 | 28 | UniversalObjectInterface *getDefaultValue() const; 29 | 30 | VariableType getType(); 31 | 32 | void setupDefaultInAnimation(Animation *animation, int objectId, int variableId); 33 | 34 | private: 35 | std::string name; 36 | 37 | VariableType variableType; 38 | 39 | UniversalObjectInterface *defaultValue; 40 | }; 41 | 42 | } 43 | 44 | #endif // VARIABLE_H 45 | -------------------------------------------------------------------------------- /spriterengine/variable/variablecontainer.h: -------------------------------------------------------------------------------- 1 | #ifndef VARIABLECONTAINER_H 2 | #define VARIABLECONTAINER_H 3 | 4 | #include 5 | 6 | #include "../global/global.h" 7 | 8 | #include "variable.h" 9 | 10 | namespace SpriterEngine 11 | { 12 | 13 | class VariableInstanceNameAndIdMap; 14 | 15 | typedef std::vector VariableVector; 16 | 17 | class VariableContainer 18 | { 19 | public: 20 | VariableContainer(); 21 | virtual ~VariableContainer(); 22 | 23 | Variable *getVariable(int variableIndex); 24 | 25 | void addStringVariable(std::string variableName, std::string defaultValue); 26 | void addIntVariable(std::string variableName, int defaultValue); 27 | void addRealVariable(std::string variableName, real defaultValue); 28 | 29 | void setupVariableInstances(VariableInstanceNameAndIdMap *variableMap); 30 | 31 | void setupDefaultVariableTimelines(Animation * animation, int objectId); 32 | 33 | private: 34 | VariableVector variables; 35 | }; 36 | 37 | } 38 | 39 | #endif // ENTITY_H -------------------------------------------------------------------------------- /spriterengine/variable/variableinstancenameandidmap.cpp: -------------------------------------------------------------------------------- 1 | #include "variableinstancenameandidmap.h" 2 | 3 | #include "../global/settings.h" 4 | 5 | #include "../objectinfo/universalobjectinterface.h" 6 | 7 | #include "variable.h" 8 | 9 | namespace SpriterEngine 10 | { 11 | 12 | VariableInstanceNameAndIdMap::VariableInstanceNameAndIdMap() 13 | { 14 | } 15 | 16 | VariableInstanceNameAndIdMap::~VariableInstanceNameAndIdMap() 17 | { 18 | for (auto& it : variables) 19 | { 20 | delete it; 21 | } 22 | } 23 | 24 | UniversalObjectInterface *VariableInstanceNameAndIdMap::getVariable(int variableIndex) 25 | { 26 | if(variableIndex < variables.size()) 27 | { 28 | return variables.at(variableIndex); 29 | } 30 | else 31 | { 32 | Settings::error("VariableInstanceNameAndIdMap::getVariable - variable instance index " + std::to_string(variableIndex) + " out of range"); 33 | return 0; 34 | } 35 | } 36 | 37 | UniversalObjectInterface *VariableInstanceNameAndIdMap::getVariable(std::string variableName) 38 | { 39 | auto it = variableNameMap.find(variableName); 40 | if (it != variableNameMap.end()) 41 | { 42 | return (*it).second; 43 | } 44 | else 45 | { 46 | Settings::error("VariableInstanceNameAndIdMap::getVariable - variable instance with name " + variableName + " not found"); 47 | return 0; 48 | } 49 | } 50 | 51 | void VariableInstanceNameAndIdMap::pushBackVariable(Variable *variable) 52 | { 53 | variables.push_back(variable->getNewObjectInfoInstance(true)); 54 | variableNameMap[variable->getName()] = variables.back(); 55 | } 56 | 57 | bool VariableInstanceNameAndIdMap::isEmpty() 58 | { 59 | return variables.empty(); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /spriterengine/variable/variableinstancenameandidmap.h: -------------------------------------------------------------------------------- 1 | #ifndef VARIABLEINSTANCENAMEANDIDMAP_H 2 | #define VARIABLEINSTANCENAMEANDIDMAP_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace SpriterEngine 9 | { 10 | 11 | class UniversalObjectInterface; 12 | class Variable; 13 | 14 | typedef std::vector VariableInstanceVector; 15 | typedef std::map VariableInstanceNameMap; 16 | 17 | class VariableInstanceNameAndIdMap 18 | { 19 | public: 20 | VariableInstanceNameAndIdMap(); 21 | ~VariableInstanceNameAndIdMap(); 22 | 23 | UniversalObjectInterface *getVariable(int variableIndex); 24 | UniversalObjectInterface *getVariable(std::string variableName); 25 | 26 | void pushBackVariable(Variable * variable); 27 | 28 | bool isEmpty(); 29 | 30 | private: 31 | VariableInstanceVector variables; 32 | VariableInstanceNameMap variableNameMap; 33 | }; 34 | 35 | } 36 | 37 | #endif // VARIABLEINSTANCENAMEANDIDMAP_H 38 | -------------------------------------------------------------------------------- /tinyxml2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(TINYXML2 CXX) 2 | 3 | set(TINYXML2_HDRS 4 | tinyxml2.h) 5 | 6 | set(TINYXML2_SRCS 7 | tinyxml2.cpp) 8 | 9 | add_library(tinyxml2 STATIC 10 | ${TINYXML2_SRCS}) 11 | -------------------------------------------------------------------------------- /tinyxml2/license.txt: -------------------------------------------------------------------------------- 1 | License 2 | ------- 3 | 4 | TinyXML-2 is released under the zlib license: 5 | 6 | This software is provided 'as-is', without any express or implied 7 | warranty. In no event will the authors be held liable for any 8 | damages arising from the use of this software. 9 | 10 | Permission is granted to anyone to use this software for any 11 | purpose, including commercial applications, and to alter it and 12 | redistribute it freely, subject to the following restrictions: 13 | 14 | 1. The origin of this software must not be misrepresented; you must 15 | not claim that you wrote the original software. If you use this 16 | software in a product, an acknowledgment in the product documentation 17 | would be appreciated but is not required. 18 | 2. Altered source versions must be plainly marked as such, and 19 | must not be misrepresented as being the original software. 20 | 3. This notice may not be removed or altered from any source 21 | distribution. 22 | --------------------------------------------------------------------------------