--- Log opened Thu Feb 16 00:00:27 2017 |
01:14 | | Derakon[AFK] is now known as Derakon |
03:00 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [A TLS packet with unexpected length was received.] |
03:01 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
03:01 | | mode/#code [+o Syloq] by ChanServ |
03:12 | <&ToxicFrog> | I just understood why the oblivion portals mod has so many weird item/quest/script interlinks |
03:12 | <&ToxicFrog> | Like, it has an item named ptfIsAnchored that sits in a blueroom doing nothing |
03:13 | <&ToxicFrog> | *but* |
03:13 | <&ToxicFrog> | That item has a script attached to it that runs when the player frobs it |
03:13 | <&ToxicFrog> | And that script sets a property on the item |
03:13 | <&ToxicFrog> | This is how the portal mod implements function calls. |
03:13 | <&ToxicFrog> | The caller gets a ref to the object, sets some properties on it, and then generates a virtual frob event on it. |
03:13 | <&ToxicFrog> | And then reads the result property. |
03:14 | <~Vornicus> | madness |
03:16 | <@Reiv> | ... it's using scripts on objects as functions O.o |
03:16 | <&ToxicFrog> | Yes. |
03:16 | <@Reiv> | I guess the language is a little primitive, huh |
03:16 | <&ToxicFrog> | Because the Oblivion engine doesn't support function calls, see. |
03:16 | <@Reiv> | eesh, right |
03:16 | <@Reiv> | That's honestly kinda clever |
03:16 | <&ToxicFrog> | I mean, OBSE was able to hack in support for them, but this mod predates OBSE |
03:17 | <@Reiv> | Are any of them acting as, uh, global variables or the like? |
03:17 | <&ToxicFrog> | No, those are linked to quests |
03:18 | <&ToxicFrog> | Like, as shipped, this mod has: |
03:18 | <&ToxicFrog> | - 10 DOOR objects (the portals themselves) |
03:18 | <&ToxicFrog> | - 1 CELL (the blueroom) |
03:18 | <&ToxicFrog> | - 1 CREA (creature), I haven't figured out what this is for yet |
03:18 | <&ToxicFrog> | - 4 MISC, the objects holding the functions |
03:19 | <&ToxicFrog> | - 5 QUST, still figuring out what these do; one of them runs at startup to install the spells, one of them exists to hold the map markers for the portals, and one is used to move the player (for some reason player movement is implemented with a custom script rather than the existing door mechanics), not sure about the other two |
03:20 | <&ToxicFrog> | The one that runs at startup also holds global references to the ten portals, since objects that are *not* referenced in some manner get unloaded when the player leaves the cell, which is a problem if you need to grab a ref to them later to move them around |
03:21 | <&ToxicFrog> | - 10 SPELs, one for each portal; this is entirely on the programmer, it could have been done with one spell and a messagebox |
03:21 | <&ToxicFrog> | - 1 SOUN, for the teleporter activation |
03:23 | <&ToxicFrog> | - and 19 SCPTs, ten of which are the spell scripts to open the portals, four of them are the scripts for the MISCs, two are initialization scripts, one for moving the player, one as the activation script for the portals, and I have no idea what ptsWatch does. |
03:23 | <&ToxicFrog> | I'm cheating a bit here because I don't care about supporting Oblivion or Shivering Isles, which simplifies some of the sanity checking involved here |
03:24 | <&ToxicFrog> | But I'm pretty sure I can cut this down to 10 DOORs, 1 CELL, 1 QUST, 1 SPEL, and 2-3 SCPTs. |
03:25 | <&ToxicFrog> | The "move the player" quest, btw, is a procedure (i.e. a function with no return value) |
03:26 | <&ToxicFrog> | It's called by calling StartQuest in another script and then on the next frame the quest script fires, does its thing, and calls StopQuest. |
03:26 | <&ToxicFrog> | Have I mentioned that TES modding is a gigantic clusterfuck? |
03:28 | <@Reiv> | Good heavens |
03:28 | <@Reiv> | Well, now you know how to make a sixth portal though, right~ |
03:28 | <@Reiv> | (Or, you know, run screaming) |
03:29 | <&ToxicFrog> | Er? I've always known how, I've just also always known that it would be a colossal pain in the ass |
03:29 | <&ToxicFrog> | Less so on the code side once I'm done this refactoring, but it still requires me to at minimum get out a model and texture editor |
03:29 | <&ToxicFrog> | which are *not* part of the TESCS, I'd have to download them separately from...somewhere |
03:30 | <@Reiv> | ... fun |
03:30 | <&ToxicFrog> | Assuming NIF is even an editable format and not the output of a model compiler, which I'm not 100% sure on |
03:34 | <&ToxicFrog> | Ok, looking at ptsWatch |
03:35 | <&ToxicFrog> | I think what it's doing is constantly scanning to see if the player is within 10k units of one of the portal quest markers |
03:35 | <&ToxicFrog> | And if so it calls moveTo and setPos to move the portal to the exact location of the marker |
03:36 | <&ToxicFrog> | Which makes no sense, because the portal is already moved to the location of the marker when the player casts the spell, in ptsOpenPortal__ |
03:39 | <~Vornicus> | perhaps it gets unloaded if you're too far away? |
03:39 | <&ToxicFrog> | It shouldn't, because the quest holds a ref to it, and even if it did, why would that matter? |
03:40 | <&ToxicFrog> | ...the ptShadow is a rat |
03:41 | <&ToxicFrog> | There are ten of them in the blueroom, for no apparent reason |
03:41 | <&ToxicFrog> | Oh, they're referenced from the portal activation script! Let's take a look. |
03:44 | <~Vornicus> | I don't know |
03:45 | <~Vornicus> | I'm not too up on Oblivion. |
03:45 | <~Vornicus> | But for instance, in Mario 64, if you walk too far away from the spawn point of a goomba trio, they disappear and then when you get close again they reappear with their state reset |
03:48 | <&ToxicFrog> | So, in TES4, stuff gets unloaded when far away but its state is preserved |
03:48 | <&ToxicFrog> | Within certain limits, but those limits include positioning information for statics |
03:56 | <&ToxicFrog> | ... |
03:56 | <&ToxicFrog> | The rats are the quest markers |
03:56 | <&ToxicFrog> | You can't just place a quest marker wherever, so it has ten invisible, intangible, lobotomized rats it uses instead |
03:57 | <&ToxicFrog> | I wonder if this is why ptsWatch exists; if something moves the rats it needs to make sure the markers still match up with the visible portals |
03:58 | <@Reiv> | ... why does it use /rats/ |
04:00 | <&ToxicFrog> | They're small. |
04:12 | <@Reiv> | oh, huh, you know that's kind of pretty intelligible. Carry on! |
05:11 | | Derakon is now known as Derakon[AFK] |
05:22 | | Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Ping timeout: 121 seconds] |
05:25 | | Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code |
05:25 | | mode/#code [+o Alek] by ChanServ |
06:00 | | LadyOfLight [catalyst@Nightstar-nharc3.dab.02.net] has joined #code |
07:01 | | Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Ping timeout: 121 seconds] |
07:04 | | Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code |
07:05 | | mode/#code [+o Alek] by ChanServ |
07:28 | | AverageJoe [evil1@Nightstar-lc3.hbj.189.210.IP] has joined #code |
07:31 | | AverageJoe [evil1@Nightstar-lc3.hbj.189.210.IP] has quit [[NS] Quit: Leaving] |
08:24 | | * gnolam blerghs. |
08:24 | | * gnolam is in a mazy of twisty little corner cases, all alike. |
08:27 | <~Vornicus> | if they were all alike they wouldn't be terribly corner |
08:31 | < LadyOfLight> | Alike in impact but not detail? |
09:00 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Connection closed] |
09:01 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
09:01 | | mode/#code [+o Syloq] by ChanServ |
09:20 | | macdjord is now known as macdjord|slep |
09:40 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Operation timed out] |
10:22 | <@gnolam> | A gazillion permutations of the-same-thing-really that are juuust different enough that you can't handle them cleanly. |
10:41 | <@TheWatcher> | >.< |
10:44 | < LadyOfLight> | You just defined the language I'm attempting to parse quite succinctly |
11:52 | | Kindamoody[zZz] is now known as Kindamoody |
12:12 | | LadyOfLight` [catalyst@Nightstar-4ahv6k.dab.02.net] has joined #code |
12:15 | | LadyOfLight [catalyst@Nightstar-nharc3.dab.02.net] has quit [Ping timeout: 121 seconds] |
12:50 | | LadyOfLight` is now known as LadyOfLight |
13:29 | <@Pi> | Justt lovely: https://twitter.com/puffnfresh/status/832037599355105280 |
15:39 | | LadyOfLight [catalyst@Nightstar-4ahv6k.dab.02.net] has quit [[NS] Quit: Bye] |
16:26 | | LadyOfLight [catalyst@Nightstar-4ahv6k.dab.02.net] has joined #code |
16:26 | < LadyOfLight> | Dammit, C switch fallthrough behaviour |
16:38 | | McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
18:42 | | LadyOfLight` [catalyst@Nightstar-874ro9.dab.02.net] has joined #code |
18:45 | | LadyOfLight [catalyst@Nightstar-4ahv6k.dab.02.net] has quit [Ping timeout: 121 seconds] |
19:10 | | LadyOfLight [catalyst@Nightstar-m2jb2n.dab.02.net] has joined #code |
19:11 | | LadyOfLight` [catalyst@Nightstar-874ro9.dab.02.net] has quit [Ping timeout: 121 seconds] |
19:14 | | LadyOfLight` [catalyst@Nightstar-u1qndt.dab.02.net] has joined #code |
19:16 | | LadyOfLight [catalyst@Nightstar-m2jb2n.dab.02.net] has quit [Ping timeout: 121 seconds] |
19:28 | | LadyOfLight [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
20:34 | | Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Ping timeout: 121 seconds] |
20:35 | | LadyOfLight` [catalyst@Nightstar-u1qndt.dab.02.net] has quit [Ping timeout: 121 seconds] |
20:37 | | Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code |
20:37 | | mode/#code [+o Alek] by ChanServ |
20:47 | <@celticminstrel> | Oh wow. I just discovered Firefox lets you mute tabs that insist on playing background music. I mean, it doesn't really matter for me since I disabled autoplay, but it's still a great idea. |
20:53 | <@Alek> | yep! |
20:59 | | ErikMesoy [Erik@Nightstar-hq72t5.customer.cdi.no] has quit [Ping timeout: 121 seconds] |
21:00 | | ErikMesoy [Erik@Nightstar-hq72t5.customer.cdi.no] has joined #code |
21:23 | <@celticminstrel> | Still probably gonna switch away from Firefox as soon as I can get a new computer, though. |
21:29 | <@Tamber> | https://twitter.com/_Ninji/status/832336744959922177 |
21:42 | < LadyOfLight> | checks out |
21:49 | | LadyOfLight [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving] |
22:07 | | * TheWatcher finally, finally thinks he's cracked a problem he's been stewing on for nearly two years |
22:08 | <@TheWatcher> | Now I just need to write the code to see if it actually works... |
22:13 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
22:13 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
23:45 | | LadyOfLight [catalyst@Nightstar-07ra9n.dab.02.net] has joined #code |
23:52 | | Kindamoody is now known as Kindamoody[zZz] |
--- Log closed Fri Feb 17 00:00:28 2017 |