Relight Posted November 9, 2016 Share Posted November 9, 2016 Sorry for the post that's slightly off-topic, but I hoped it would be okay/allowed to have such a topic here for basic questions that UFO4P contributors might have. My current question concerns the loading screening text, which is in the Creation Kit under Miscellaneous / LoadScreen. However, I don't see an export for that text, and in the data that the CK displays, I also don't see the VDSG # that appears on the loading screen. Any ideas about where those VDSG numbers are stored? Or maybe the engine just uses a random number generator? Link to comment Share on other sites More sharing options...
InsanePlumber Posted November 9, 2016 Share Posted November 9, 2016 They are probably in SWF file. (Interface\LoadingMenu.swf) Link to comment Share on other sites More sharing options...
Relight Posted November 9, 2016 Author Share Posted November 9, 2016 Thank you for the idea! I had a look and I don't understand all of the ActionScript, but I don't see them there. I have an old question that perhaps some experts here might advise about - this one is a New Vegas question. Starting with New Vegas GECK 1.3, the option File / Export / Form Component Data for all non-World Forms was mysteriously removed. The previous version 1.1 - which had this option (as do all other GECKs / Creation Kits) - cannot be used on the latest version of the game. Any ideas regarding any options for the functionality of this export? What I believe is the relevant part of LoadingMenu.swf: public function SetLoadingText(arg1:uint, arg2:String, arg3:String):* { var loc3:*=null; var loc4:*=0; this.InMinimalMode = false; this.BlackRect_mc.visible = false; this.LeftText_mc.VDSGText_tf.visible = true; this.LeftText_mc.LoadScreenText_tf.visible = true; var loc1:*=this.LeftText_mc.LoadScreenText_tf.numLines; Shared.GlobalFunc.SetText(this.LeftText_mc.VDSGText_tf, "$VDSGPrepend", false); Shared.GlobalFunc.SetText(this.LeftText_mc.VDSGText_tf, this.LeftText_mc.VDSGText_tf.text + arg1.toString(), false); Shared.GlobalFunc.SetText(this.LeftText_mc.LoadScreenText_tf, arg3, false); var loc2:*; if ((loc2 = (this.LeftText_mc.LoadScreenText_tf.length - 1)) >= 0) { loc3 = this.LeftText_mc.LoadScreenText_tf.getCharBoundaries(loc2); loc4 = this.LeftText_mc.LoadScreenText_tf.numLines; this.LeftText_mc.LoadScreenText_tf.y = this.LeftText_mc.LoadScreenText_tf.y - (loc4 - loc1) * loc3.height; this.LeftText_mc.VDSGText_tf.y = this.LeftText_mc.LoadScreenText_tf.y - this.SLIDE_NUMBER_SPACER; this.LeftText_mc.LevelMeter_mc.y = this.LeftText_mc.VDSGText_tf.y - this.LEVEL_METER_SPACER; this.LeftText_mc.LevelText_tf.y = this.LeftText_mc.LevelMeter_mc.y - this.LEVEL_TEXT_SPACER; if (this.BorderRectangle != null) { this.LeftText_mc.removeChild(this.BorderRectangle); this.BorderRectangle = null; } this.BorderRectangle = new flash.display.MovieClip(); this.BorderRectangle.graphics.lineStyle(2, 16777215); this.BorderRectangle.graphics.beginFill(0, 0); this.BorderRectangle.graphics.drawRect(0, 0, this.LeftText_mc.LoadScreenText_tf.width + this.BORDER_BUFFER.x + this.BORDER_BUFFER.width, loc3.y + loc3.height + this.BORDER_BUFFER.y + this.BORDER_BUFFER.height); this.BorderRectangle.graphics.endFill(); this.BorderRectangle.x = this.LeftText_mc.LoadScreenText_tf.x - this.BORDER_BUFFER.x; this.BorderRectangle.y = this.LeftText_mc.LoadScreenText_tf.y - this.BORDER_BUFFER.y; this.LeftText_mc.addChild(this.BorderRectangle); } return; } Link to comment Share on other sites More sharing options...
Kesta Posted November 9, 2016 Share Posted November 9, 2016 Shared.GlobalFunc.SetText(this.LeftText_mc.VDSGText_tf, "$VDSGPrepend", false); Shared.GlobalFunc.SetText(this.LeftText_mc.VDSGText_tf, this.LeftText_mc.VDSGText_tf.text + arg1.toString(), false); Those are the related lines (arg1 being an uint). The first set the "VSDG" part based on the translation strings files (i.e. localized string), the second append the number to it. Now to figure out how is this number is changed/decided, you'll need to find the part of code that's actually calling this function, and see how it generate the uint passed as argument. If I were a Beth' dev, I'd probably compute a number based on the FormID of the loadscreen's form, if the actionscript had access to such data. That would ensure consistent numbering accross multiple game sessions while ensuring every different loading screen have a different number. Link to comment Share on other sites More sharing options...
Relight Posted November 10, 2016 Author Share Posted November 10, 2016 Thanks for the help so far, I appreciate it! The ActionScript itself - at least as far as I can see within LoadingMenu.swf - doesn't call the function SetLoadingText. When I installed the Creation Kit, it asked for me to unzip Base.zip, which I did - I don't find this function called in those scripts either. So I'm afraid I'm stuck on where to go next with this one. If I were a Beth' dev, I'd probably compute a number based on the FormID of the loadscreen's form, if the actionscript had access to such data. Hmm, here's a handful of VDSG numbers paired with Form IDs from screenshots I had previously taken: 38 - 001F9616 - Rad-X significantly increases... 56 - 001F9628 - Adhesive is rare, and used to create... 2788 - 001E6854 - Diamond City's non-denominational... 5851 - 001CEDAB - One of the Wasteland's most disgusting creatures... 8446 - 002498EE - Every issue of Taboo Tattoos... 8479 - 001E095F - Inside every snyth Courser... 9689 - 001F6DA9 - If the conspiracy theorists are to be believed... 9697 - 001F6DB1 - Melee attacks on enemies can stagger... 9710 - 001F6DBE - Laser rifles and pistols deal powerful... Link to comment Share on other sites More sharing options...
Kesta Posted November 10, 2016 Share Posted November 10, 2016 Thanks for the help so far, I appreciate it! The ActionScript itself - at least as far as I can see within LoadingMenu.swf - doesn't call the function SetLoadingText. When I installed the Creation Kit, it asked for me to unzip Base.zip, which I did - I don't find this function called in those scripts either. So I'm afraid I'm stuck on where to go next with this one. Hmm, here's a handful of VDSG numbers paired with Form IDs from screenshots I had previously taken: 38 - 001F9616 - Rad-X significantly increases... 56 - 001F9628 - Adhesive is rare, and used to create... 2788 - 001E6854 - Diamond City's non-denominational... 5851 - 001CEDAB - One of the Wasteland's most disgusting creatures... 8446 - 002498EE - Every issue of Taboo Tattoos... 8479 - 001E095F - Inside every snyth Courser... 9689 - 001F6DA9 - If the conspiracy theorists are to be believed... 9697 - 001F6DB1 - Melee attacks on enemies can stagger... 9710 - 001F6DBE - Laser rifles and pistols deal powerful... Then the executable is doing the calls on the actionscript. Not sure where the F4SE guys are at into decoding this part yet, but there should be some things in here since expired already managed to do a few stuffs for the character menu. As for the relation, glad to see I was right Beth really went the cheap way with this. Convert those hexadecimal formID into their decimal equivalent (with this for instance), and that should be pretty obvious to you (The first 4 digits of the decimal value of the FormID are what is used as VDSG number). Link to comment Share on other sites More sharing options...
Relight Posted November 10, 2016 Author Share Posted November 10, 2016 LOL awesome, that's fun to know Thank you InsanePlumber and Kesta for helping to figure it out! (By the way, if a mod wants to move this into "Modding Support and Discussion," feel free - that's probably where I should have posted it in the first place Thanks!) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now