diff --git a/inspect.css b/inspect.css new file mode 100644 index 0000000..1206ab3 --- /dev/null +++ b/inspect.css @@ -0,0 +1,93 @@ +div.nav { + width: 100px; + float: left; + background: #cce; +} +div.nav div { + padding-left: 5px; + font-size: 12px; + font-family: sans-serif; + cursor: pointer; + border-bottom: 1px solid #eee; +} +div.view { + margin-left: 110px; +} + +div.selector { + padding-top: 5px; + font-size: 14px; + font-family: sans-serif; +} +span.prev { + width: 40px; + border-top: 1px solid #444; + border-left: 1px solid #444; + border-bottom: 1px solid #444; + border-right: 1px solid #aae; + padding: 5px; + background: #448; + color: #eef; + cursor: pointer; +} +span.prev.disabled { + color: #aaa; +} +span.next { + width: 40px; + border-top: 1px solid #444; + border-right: 1px solid #444; + border-bottom: 1px solid #444; + border-left: 1px solid #aae; + padding: 5px; + background: #448; + color: #eef; + cursor: pointer; +} +span.next.disabled { + color: #aaa; +} +span.counter { + display: inline-block; + width: 150px; + padding: 5px; + background: #88c; + border-top: 1px solid #444; + border-bottom: 1px solid #444; + text-align: center; +} +table { + border: 1px solid #888; + border-collapse: collapse; +} +table tr { + border-bottom: 1px solid #aaa; +} +table th { + text-align: left; + height: 8em; + vertical-align: bottom; + padding-bottom: 10px; +} +table th.odd { + background: #ccc; +} +table th span { + position: absolute; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + font-size: 14px; + font-family: sans-serif; + vertical-align: top; +} +table td { + font-size: 13px; + font-family: sans-serif; + width: 20px; + text-align: center; +} +table td.odd { + background: #ccc; +} diff --git a/inspect.html b/inspect.html new file mode 100644 index 0000000..6c6c352 --- /dev/null +++ b/inspect.html @@ -0,0 +1,12 @@ + + +WebVenture Inspector + + + + + + + diff --git a/inspect.js b/inspect.js new file mode 100644 index 0000000..410ab03 --- /dev/null +++ b/inspect.js @@ -0,0 +1,19 @@ +var desktop; +//initialize screen and determine platform +$(document).ready(function(){ + desktop=$(document.createElement('div')); + desktop.addClass('screen'); + $('script[src="inspect.js"]').after(desktop); + + if (gamename.match(/\.dsk$/)) //macintosh + $.getScript("inspect_mac.js"); + else if (gamename.match(/\.2mg$/)) //IIgs + $.getScript("inspect_gs.js"); + else + fatal("Unknown disk type"); +}); +function fatal(err) +{ +// desktop.html('

'+err+'

'); + throw err; +} diff --git a/inspect_gs.js b/inspect_gs.js new file mode 100644 index 0000000..3dc0e80 --- /dev/null +++ b/inspect_gs.js @@ -0,0 +1,21 @@ +var Modules=[ + "gs/gs.js", + "gs/files.js", + "gs/graphics.js", + "gs/resources.js", + "gs/sound.js", + "files.js", + "graphics.js", + "sound.js", + "text.js", + "objects.js", + "inspect_main.js" +]; +var loadedModules=0; +for (var i in Modules) +{ + $.getScript(Modules[i],function() { + if (++loadedModules==Modules.length) + initialize(); + }); +} diff --git a/inspect_mac.js b/inspect_mac.js new file mode 100644 index 0000000..f6e3afd --- /dev/null +++ b/inspect_mac.js @@ -0,0 +1,21 @@ +var Modules=[ + "mac/mac.js", + "mac/files.js", + "mac/graphics.js", + "mac/resources.js", + "mac/sound.js", + "files.js", + "graphics.js", + "sound.js", + "text.js", + "objects.js", + "inspect_main.js" +]; +var loadedModules=0; +for (var i in Modules) +{ + $.getScript(Modules[i],function() { + if (++loadedModules==Modules.length) + initialize(); + }); +} diff --git a/inspect_main.js b/inspect_main.js new file mode 100644 index 0000000..38cf66f --- /dev/null +++ b/inspect_main.js @@ -0,0 +1,306 @@ +var view; +var game; +function waitForLoad() +{ + if (!gameLoaded()) + { + setTimeout(waitForLoad,10); + return; + } + openResources(); + startImage.remove(); + delete startImage; + desktop.removeClass('screen'); + + loadFiles(); + + var g=getFile(resGetDefault()); + game=new Array(numGroups); + globals=new Array(numGlobals); + for (var i=0;i0) + { + curItem--; + update(); + } + return false; + }); + next.mousedown(function(){ + if (curItem0) + { + curItem--; + update(); + } + return false; + } + if (event.which==39) //right + { + if (curItemnumItems-1) + curItem=numItems-1; + update(); + return false; + } + if (event.which==36) //home + { + curItem=0; + update(); + return false; + } + if (event.which==35) //end + { + curItem=numItems-1; + update(); + return false; + } + return true; + }); + update(); +} + +function showObjects() +{ + createSelector(numObjects,showObject); +} +var subview=undefined; +function showObject(id) +{ + var attrnames=[ + "parent", + "x", + "y", + "offscreen", + "unclickable", + "undraggable", + "current room", //6 + "prefixes", + "is exit", + "exit x", + "exit y", + "hidden exit" + ]; + if (subview==undefined) + { + subview=$(document.createElement('div')); + view.append(subview); + } + else + subview.html(''); + var name=$(document.createElement("h3")); + subview.append(name); + name.append("Name: "+getText(id)); + var img=getGraphic(id*2); + var mask=getGraphic(id*2+1); + if (mask) + addImageMask(subview,img,mask); + else if (img) + addImage(subview,img); + var attrtab=$(document.createElement('table')); + subview.append(attrtab); + var attrs=$(document.createElement('tbody')); + attrtab.append(attrs); + var tr=$(document.createElement('tr')); + attrtab.append(tr); + for (var i=0;i>attrShifts[attr]); + return r; +} +function neg16(v) +{ + if (v&0x8000) + v=-((v^0xffff)+1); + return v; +} diff --git a/inspector.html b/inspector.html new file mode 100644 index 0000000..1406d7c --- /dev/null +++ b/inspector.html @@ -0,0 +1,32 @@ + + +WebVenture Inspector + + + + +
+

WebVenture Inspector

+

+Please choose a game to inspect. +

+
+ +
+ +