In what is probably my most ambitious PoC project to date, this map is about customizing the Omnitool interface into something that makes it be more than just a "door opener".
(I promise it's not a hypnotizing device... shush.)
This one was an interesting one for me, as it's the first PoC I've done that involves an original concept, rather than taking an existing SOMA mechanic and stripping it to its bare essentials. What it does is it implements its own simple function for the Omnitool's OnGui callback to turn the tool into a kind of radar device. To show this off, the map is built around a bit of a scavenger hunt, where you are given a list of items to find.
I say it was ambitious, but to tell the truth, there wasn't a whole lot in the way of challenge to this one. I will say, however, that the code to get the position of an entity was surprisingly not very straight forward - there is no Entity_GetPosition function. Instead, you have to use the
cLux_GetCurrentMap function to... you know... get the current map. From there, you use the resultant
cLuxMap reference's
GetEntityByName function to get an
iLuxEntity reference, and
then you can call a
GetPosition. I mean sure, it sounds pretty doable in hindsight, but it took me an unexpectedly long time to navigate through the hps_api to find all that, and frankly if it wasn't for my text searching program that I wrote for the express purpose of finding where certain objects or functions are used in the SOMA files, I might have just given up altogether. (Having said that, I now fully expect someone to post a reply telling me about some super simple obvious solution that I missed.)
That's enough of my talking for now. The map's over on
Steam Workshop, like always.
EDIT: This and my other PoC mods are now available on MoDDB as well.
(Once I get a fair amount of these PoC maps rolling, I'll start uploading them to ModDB in bulk. The reason I haven't thus far is that ModDB requires 5 images before they will accept a mod, and any one PoC map just doesn't have enough content to make 5 images. I mean heck, a couple of these maps didn't even really need 2 images, let alone 5.)