{"id":212,"date":"2020-08-17T12:00:56","date_gmt":"2020-08-17T12:00:56","guid":{"rendered":"https:\/\/blogs.scummvm.org\/djsrv\/?p=212"},"modified":"2022-05-24T00:44:02","modified_gmt":"2022-05-24T00:44:02","slug":"shockwave","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/djsrv\/2020\/08\/17\/shockwave\/","title":{"rendered":"Shockwave!"},"content":{"rendered":"<section class=\"body\">Last week was an exciting one because the Director engine can finally load Macromedia Shockwave 1.0 movies!This first version of Shockwave was based on Director 4.0, which we already have partial support for, and it used a \u201cafterburned\u201d movie format with a modified memory map and zlib compression. After implementing support for this file format, the Director engine can now load (and sort of play) early Shockwave games:<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-213\" src=\"https:\/\/blogs.scummvm.org\/djsrv\/wp-content\/uploads\/sites\/4\/2022\/05\/shockwave-asteroids.png\" alt=\"\" width=\"668\" height=\"536\" srcset=\"https:\/\/blogs.scummvm.org\/djsrv\/wp-content\/uploads\/sites\/4\/2022\/05\/shockwave-asteroids.png 668w, https:\/\/blogs.scummvm.org\/djsrv\/wp-content\/uploads\/sites\/4\/2022\/05\/shockwave-asteroids-300x241.png 300w, https:\/\/blogs.scummvm.org\/djsrv\/wp-content\/uploads\/sites\/4\/2022\/05\/shockwave-asteroids-480x385.png 480w\" sizes=\"auto, (max-width: 668px) 100vw, 668px\" \/>None of the games I\u2019ve tested work very well yet due to missing Director features, but I\u2019m hoping that some Shockwave games will be fully playable soon, as they\u2019re often small and rather simple.<\/p>\n<p>In addition, I\u2019ve refactored cast members so that they are Lingo objects, greatly simplifying the implementation of cast member properties. The properties a cast member has depends on its type, and this is now implemented with inheritance and polymorphism instead of a huge switch statement with copious type checks.<\/p>\n<p>More types to follow! \ud83d\ude42<\/p>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Last week was an exciting one because the Director engine can finally load Macromedia Shockwave 1.0 movies!This first version of Shockwave was based on Director 4.0, which we already have partial support for, and it used a \u201cafterburned\u201d movie format with a modified memory map and zlib compression. After implementing support for this file format, [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-212","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/posts\/212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/comments?post=212"}],"version-history":[{"count":3,"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/posts\/212\/revisions"}],"predecessor-version":[{"id":220,"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/posts\/212\/revisions\/220"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/media?parent=212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/categories?post=212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/djsrv\/wp-json\/wp\/v2\/tags?post=212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}