{"id":100,"date":"2024-08-04T16:08:30","date_gmt":"2024-08-04T16:08:30","guid":{"rendered":"https:\/\/blogs.scummvm.org\/markhor\/?p=100"},"modified":"2024-08-04T16:08:30","modified_gmt":"2024-08-04T16:08:30","slug":"tsage-engine-hopkins-engine-week-10","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/markhor\/2024\/08\/04\/tsage-engine-hopkins-engine-week-10\/","title":{"rendered":"tSage Engine &amp; Hopkins Engine &#8211; Week 10"},"content":{"rendered":"<h1>tSage Engine<\/h1>\n<p>This engine does not use the scummvm&#8217;s event class but its own, so I had to include customAction in that class.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-102\" src=\"https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-195915.png\" alt=\"\" width=\"1275\" height=\"152\" srcset=\"https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-195915.png 1275w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-195915-300x36.png 300w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-195915-1024x122.png 1024w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-195915-768x92.png 768w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-195915-720x86.png 720w\" sizes=\"auto, (max-width: 1275px) 100vw, 1275px\" \/><br \/>\nAlso in some cases the engine uses bitwise masking to check which event type is being triggered hence I had to give a value to the custom type which won&#8217;t mess up the masking if the event types were to be checked.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-103\" src=\"https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-202802.png\" alt=\"\" width=\"776\" height=\"151\" srcset=\"https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-202802.png 776w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-202802-300x58.png 300w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-202802-768x149.png 768w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-202802-720x140.png 720w\" sizes=\"auto, (max-width: 776px) 100vw, 776px\" \/><br \/>\nNow we can identify event type<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-104\" src=\"https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-203448.png\" alt=\"\" width=\"1541\" height=\"133\" srcset=\"https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-203448.png 1541w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-203448-300x26.png 300w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-203448-1024x88.png 1024w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-203448-768x66.png 768w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-203448-1536x133.png 1536w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-203448-720x62.png 720w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-203448-1440x124.png 1440w\" sizes=\"auto, (max-width: 1541px) 100vw, 1541px\" \/><br \/>\nHere is the <a href=\"https:\/\/github.com\/scummvm\/scummvm\/pull\/5986\" target=\"_blank\" rel=\"noopener\">PR<\/a>.<\/p>\n<h1>Hopkins Engine<\/h1>\n<p>Hopkins was an easy engine but the only thing where I had used the most time figuring out was where was the best place to disable the keymap so text input can be taken<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-105\" src=\"https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-210408.png\" alt=\"\" width=\"772\" height=\"409\" srcset=\"https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-210408.png 772w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-210408-300x159.png 300w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-210408-768x407.png 768w, https:\/\/blogs.scummvm.org\/markhor\/wp-content\/uploads\/sites\/73\/2024\/08\/Screenshot-2024-08-04-210408-720x381.png 720w\" sizes=\"auto, (max-width: 772px) 100vw, 772px\" \/><br \/>\nOther than that there was nothing too complex,<br \/>\nHere is the <a href=\"https:\/\/github.com\/scummvm\/scummvm\/pull\/5987\" target=\"_blank\" rel=\"noopener\">PR<\/a>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>tSage Engine This engine does not use the scummvm&#8217;s event class but its own, so I had to include customAction in that class. Also in some cases the engine uses bitwise masking to check which event type is being triggered hence I had to give a value to the custom type which won&#8217;t mess up [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-100","post","type-post","status-publish","format-standard","hentry","category-keymap"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/posts\/100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":2,"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"predecessor-version":[{"id":106,"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/posts\/100\/revisions\/106"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/markhor\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}