Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

tarepanda posted:

That's what I'm doing now -- my issue was/is that if I try saving directly to the album and they change the view before it actually does that, the photo ends up not being saved.

Once there's some nontrivial logic involved the code for saving stuff to the assets library shouldn't really be in a view controller anyway, and once you split it off to its own class then having the object doing the saving outlive the view isn't really an issue. There's still the possibility of the app exiting before it's saved, which I handled by moving all of the assets library adding logic off to a background worker which monitors the cache directory and is spawned at app startup, so that anything which was waiting to be written is just done the next time the app is run.

If you can get away with not doing stuff with the assets library it'd probably be much better for your sanity.

Adbot
ADBOT LOVES YOU

Hibame
Feb 20, 2008

Doh004 posted:

We're currently trying to determine if we (our company) can use Testflight due to legal issues. In the mean time, I'm trying to do OTA ad hoc distribution of our app to our other developers/designers, but none of this poo poo wants to work.

I've googled a bit and found some tutorials that are out of date or don't seem to work. Anyone have a guide that they've used in the past for ad hoc distribution manually?

As someone who just set this up for the first time. A few things that I came across via trial and error:
  • You add a device to the current registered devices list and also have to enable the device on the distribution provisioning profile
  • You have to redownload the distribution provisioning profile each time you add someone then resign the archive
  • When signing the archive for distribution you need to check the enterprise deployment box to get the .plist and .ipa files correctly generated

For the hosting location I just did a quick ghetto page with
code:
<a href="itms-services://?action=download-manifest&url=http://app.domain.com/app.plist">Download App</a>
Edit: I also hosted this in an IIS instance and thus had to enable the mime types for .plist and .ipa so that they would be served
  • .ipa as application/octet-stream
  • .plist as application/xml

Hibame fucked around with this message at 20:08 on Oct 4, 2012

Doc Block
Apr 15, 2003
Fun Shoe

Doh004 posted:

We're currently trying to determine if we (our company) can use Testflight due to legal issues. In the mean time, I'm trying to do OTA ad hoc distribution of our app to our other developers/designers, but none of this poo poo wants to work.

I've googled a bit and found some tutorials that are out of date or don't seem to work. Anyone have a guide that they've used in the past for ad hoc distribution manually?

TestFlight has instructions on how to build an ad hoc distribution profile and build your app with it. Just leave out the parts about using TestFlight itself.

Remember that your ad hoc distribution profile has to include every device you will be running the ad hoc build on.

Then, send the ad hoc profile and build to your testers. They'll need to have their device plugged in, and then IIRC drag the ad hoc profile and the .ipa onto iTunes, which will install them on the device.

Doh004
Apr 22, 2007

Mmmmm Donuts...

Hibame posted:

As someone who just set this up for the first time. A few things that I came across via trial and error:
  • You add a device to the current registered devices list and also have to enable the device on the distribution provisioning profile
  • You have to redownload the distribution provisioning profile each time you add someone then resign the archive
  • When signing the archive for distribution you need to check the enterprise deployment box to get the .plist and .ipa files correctly generated

For the hosting location I just did a quick ghetto page with
code:
<a href="itms-services://?action=download-manifest&url=http://app.domain.com/app.plist">Download App</a>
Edit: I also hosted this in an IIS instance and thus had to enable the mime types for .plist and .ipa so that they would be served
  • .ipa as application/octet-stream
  • .plist as application/xml

Do you then visit the page on the device, or on the computer with iTunes installed?

Doc Block posted:

TestFlight has instructions on how to build an ad hoc distribution profile and build your app with it. Just leave out the parts about using TestFlight itself.

Remember that your ad hoc distribution profile has to include every device you will be running the ad hoc build on.

Then, send the ad hoc profile and build to your testers. They'll need to have their device plugged in, and then IIRC drag the ad hoc profile and the .ipa onto iTunes, which will install them on the device.

That's what we're currently trying right now. I think I got that to work on my device here so fingers crossed. I'd like to do the method Hibame gave so we'll see.

*edit* I wish it was as easy as sending over the apk like Android development... :(

Hibame
Feb 20, 2008

Doh004 posted:

Do you then visit the page on the device, or on the computer with iTunes installed?

Yes, the link only works when loading the page on the device itself.

If you properly added the device and signed the archive with the updated distribution provisioning profile. I believe that all that is required on the users end is to click the link as the profile is included in the .ipa. (I could be very wrong on this but so far I have just told the testers to go to the page and click the link, everything has installed fine.)

LP0 ON FIRE
Jan 25, 2006

beep boop
In Cocos2D for iOS, when you do a scene transition that pushes the position of the old one off the screen while a new one comes onto the screen, it is changing the position of the scene, and not the layer inside of it, right?

I'm trying to get the scene's position in CCActionEase while calling my own implementation's update method.

I try this method in the update method, but it's throwing back 0.000000 even though the scene is transitioning off the screen:

code:
CCScene * scene = [[CCDirector sharedDirector] runningScene];

float y = scene.position.y;

NSLog(@"%f",y);
In case it's the layer inside the scene, I've tagged the layer in the original scene class and did this:

code:
-(void) update: (ccTime) t
{
	[other update: powf(t,rate)];
	
	CCScene * scene = [[CCDirector sharedDirector] runningScene];
	
	id layer = [scene getChildByTag:0];
	CGPoint pos = [layer getJoinedMapsLayerPosition];
	
	float y = pos.y;
	
	NSLog(@"%f",y);
}
Still giving me 0.000000!

I know I'll probably have to do some conversation before I go hog wild with some kind of useful result, but shouldn't I be getting something other than 0?

LP0 ON FIRE fucked around with this message at 21:53 on Oct 4, 2012

Doh004
Apr 22, 2007

Mmmmm Donuts...

Hibame posted:

Yes, the link only works when loading the page on the device itself.

If you properly added the device and signed the archive with the updated distribution provisioning profile. I believe that all that is required on the users end is to click the link as the profile is included in the .ipa. (I could be very wrong on this but so far I have just told the testers to go to the page and click the link, everything has installed fine.)

Hey that worked! Hurray! It's a bit annoying to have to regenerate the provision file, but I'll just chalk that up to Apple being Apple :woop:

Doh004
Apr 22, 2007

Mmmmm Donuts...
Another question!

UIPageControl didn't implement the setting of the currentPage and the page color icons until 6.0 (it seems). I was wondering why our app was breaking on 5.1 and it turns out that's the reason!

Short of creating a custom page control, am I missing something glaring? The default white/light gray coloring doesn't work for my app.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
No need to make your own, there's open source page controls.

Doc Block
Apr 15, 2003
Fun Shoe

Doh004 posted:

Hey that worked! Hurray! It's a bit annoying to have to regenerate the provision file, but I'll just chalk that up to Apple being Apple :woop:

You only need to update the ad hoc distribution profile if you add or remove devices.

Doh004
Apr 22, 2007

Mmmmm Donuts...

Doc Block posted:

You only need to update the ad hoc distribution profile if you add or remove devices.

Right, used the wrong term there my apologies. Still have to redistribute everything though, right?


pokeyman posted:

No need to make your own, there's open source page controls.

Any suggestions in particular? Or whatever google first returns?

Doc Block
Apr 15, 2003
Fun Shoe

Doh004 posted:

Right, used the wrong term there my apologies. Still have to redistribute everything though, right?

You should only have to redistribute the ad hoc distribution profile if it changes (such as by adding/removing a device from it). Once the tester has the profile installed it will stay installed until they remove it or it expires.

So, if you add another tester, you'll need to add that device to your list of development devices in the iOS Provisioning Portal on developer.apple.com/ios, add it to your ad hoc distribution profile, install your new profile into Xcode so it can sign builds with the updated ad hoc distribution profile (by going into Xcode Organizer and hitting the refresh button in the Profiles section or wherever), build with the updated profile, and then send your testers the new profile and build.

ultramiraculous
Nov 12, 2003

"No..."
Grimey Drawer

Doh004 posted:

Any suggestions in particular? Or whatever google first returns?

I can vouch for DDPageControl working as advertised. I think that's probably one of the more common ones.

LP0 ON FIRE
Jan 25, 2006

beep boop
With the question above, I made the horrible assumption anything was being called and was returning 0 for some reason. Just by calling the method in CCEaseInWithPercentMult's update method by doing the following does NOT give me a log:

code:
//CCActionEase.m

#import "JoinedMapsScene.h"

@implementation CCEaseInWithPercentMult
-(void) update: (ccTime) t
{
	
	[other update: powf(t,rate)];
		
	CCScene * scene = [[CCDirector sharedDirector] runningScene];
	
	id layer = [scene getChildByTag:0];
	
	[layer getJoinedMapsLayerPosition];
}
@end
code:
//JoinedMapsScene

- (CGPoint) getJoinedMapsLayerPosition {
	
       //this never comes up in my console. Not called?
	NSLog(@"getJoinedMapsLayerPosition CALLED *****");
	
	//return something:
	return CGPointMake(9,9);
}
I've heard that NSLog'ing isn't the most dependable way to check if you are calling a method, but I don't see why this wouldn't put anything in my console.

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



I can't see why it wouldn't show up if the method is actually called. The only thing I've seen is log statements sometimes coming out intermixed due to GCD, but they always show up.

Have you tried with a breakpoint?

LP0 ON FIRE
Jan 25, 2006

beep boop

Carthag posted:

I can't see why it wouldn't show up if the method is actually called. The only thing I've seen is log statements sometimes coming out intermixed due to GCD, but they always show up.

Have you tried with a breakpoint?

That's a great question! And yes, nothing happens. :(

Something I just realized what I was doing this: id layer in CCEaseInWithPercentMult's update instead of CCNode* layer. When I use the CCNode pointer, the compiler freaks out and gives me a warning that CCNode may not respond to getJoinedMapsLayerPosition. After all, it is a CCNode, right?

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Well method calls are only type-checked at compile-time, and I guess CCNode doesn't respond to that one. When you use id, the compiler assumes you know what you're doing and you can send any message at at all to it (as long as it's included from some header).

I think calling a non-recognized selector isn't a fatal exception, just a no-op, so that might be what's happening, so set a symbolic breakpoint on -[NSObject doesNotRecognizeSelector:] so you'll immediately know when you're trying to call methods that aren't defined on some object.

Where's getJoinedMapsLayerPosition defined? In a category or CCNode subclass or?

Set a breakpoint right after [scene getChildByTag:0]; and check what is actually returned. po [layer className] in the debugger will tell you what class it actually is.

Carthag Tuek fucked around with this message at 23:15 on Oct 5, 2012

Doc Block
Apr 15, 2003
Fun Shoe
Calling an unrecognized selector is most definitely a fatal exception. Try it and see. The only object that won't throw an exception if you call a nonexistent selector on it is nil.

LP0, the only thing I can think of is that you shouldn't assume that the transitions are implemented by moving the scene object.

hedgecore
May 2, 2004
My first app was approved today. Hooray! 9 days from submission to approval, if anyone's interested in that. It does have iOS6 and iPhone 5 layout support.

I cheated and built it with Appcelerator Titanium. I am a JavaScript developer, so this let me go from installing Xcode to submitting an app in under two months. I appreciate this... although I am pretty interested in investigating the Xcode project it created.

Froist
Jun 6, 2004

LP0 ON FIRE posted:

With the question above, I made the horrible assumption anything was being called and was returning 0 for some reason. Just by calling the method in CCEaseInWithPercentMult's update method by doing the following does NOT give me a log:

code:
//CCActionEase.m

#import "JoinedMapsScene.h"

@implementation CCEaseInWithPercentMult
-(void) update: (ccTime) t
{
	
	[other update: powf(t,rate)];
		
	CCScene * scene = [[CCDirector sharedDirector] runningScene];
	
	id layer = [scene getChildByTag:0];
	
	[layer getJoinedMapsLayerPosition];
}
@end


Are you sure 'layer' is coming back as a valid pointer from the getChildByTag call? You can happily send messages to a null pointer and the code will just continue as if nothing's happened, unlike java/C++/etc where it would cause a null pointer exception.

My own question: Is there a part of the toolchain I'm not aware of that informs you of any missing selectors you might be using? It seems strange to me that I can set my deployment target as iOS 4 and every Apple API has a macro next to it defining which iOS version it's available from, but there are no warnings when I use an API that's non-existant (and would cause a crash) on that OS version. I got burned by this recently when I released my first app and saw the crashes on day 1; I was setting a property on the GKAchievement class which only came in with iOS 5. Luckily Apple expedited the review of the one-line "respondsToSelector" fix, but I'd like to know the best way to avoid it in future.

Small White Dragon
Nov 23, 2007

No relation.
Is this the appropriate thread to discuss MonoTouch? Or Flash/Flex?

(If anybody else is using that. Trying it currently.)

Small White Dragon fucked around with this message at 11:34 on Oct 6, 2012

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane
Oh Apple, you just wouldn't be Apple if you didn't make me spend part of my day making sure my shiny new phone is added to all my provisioning profiles. Easy upgrades? That's for consumers, sucker!

Doc Block
Apr 15, 2003
Fun Shoe
How many profiles do you have? Adding my iPhone 5 only took a few minutes. Of course, I have Xcode set to manage my profiles for me.

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

Doc Block posted:

How many profiles do you have? Adding my iPhone 5 only took a few minutes. Of course, I have Xcode set to manage my profiles for me.

Only 5. Perhaps I'm a retard, but I'm not seeing how to add devices to one's developer account or then add those devices to a provisioning profile in xCode.

Doc Block
Apr 15, 2003
Fun Shoe
Add the new device to your developer account.

Open Xcode, then open the Organizer window. Click on the Devices tab. On the left, find your new device, then click on Use This For Development (or whatever, I forget the exact name).

Xcode will add it to your profile "iOS Team Provisioning Profile" (and create it if it doesn't exist). If you have your app set to build with automatic provisioning profile selection then that should be all you need to do.

You'll still need to manually add it to any ad-hoc distribution profiles.

I just have the team provisioning profile, my ad-hoc profile, and my app store distribution profile.

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

Doc Block posted:

I just have the team provisioning profile, my ad-hoc profile, and my app store distribution profile.

Forgive me if I've been a complete dunce, but is it possible to make a single distribution and/or development profile for all apps instead of doing it by App ID? I'll admit I didn't read the documentation regarding provisioning in the greatest detail, but did I really miss that?

Doc Block
Apr 15, 2003
Fun Shoe
Yes, a wildcard profile, where its "com.pt6a.*" or whatever.

I think there are some instances where you can't use one, like keychain access and iCloud AFAIK, but I could be wrong about that.

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

Doc Block posted:

Yes, a wildcard profile, where its "com.pt6a.*" or whatever.

I think there are some instances where you can't use one, like keychain access and iCloud AFAIK, but I could be wrong about that.

Oh motherFUCKER.

Why don't any of the "Beginning iPhone Development" books focus on wading through the confusing mess that is provisioning and such?

Doc Block
Apr 15, 2003
Fun Shoe
OK, I went back into the iOS Provisioning Portal, and here's the deal if you don't want to make provisioning profiles for every app you make:

You need a wildcard App ID, so something like "ADFE86.whoever.*", and then you use that to create a provisioning profile. That provisioning profile will work for any app, except if you want to use Game Center, In-App Purchase, Passbook, and a few other things. In that case you can't use a wildcard App ID; you'll have to create one specific to the app, and create a provisioning profile that uses that App ID.

If you aren't using those, though, let Xcode manage your profiles for you. It will create its own wildcard App ID, and create its own provisioning profile that uses it (which will show up in the iOS Provisioning Portal as "Managed by Xcode"). Then just change your app's build settings to the automatic profile selector.

Doc Block
Apr 15, 2003
Fun Shoe
Could someone please look at this and tell me if there's something wrong with the way I'm trying to set the exposure point-of-interest with AVFoundation?

What should happen is that when the user taps on the view, the focus point and exposure point should be set there, and the camera should lock focus and exposure on that point. The focusing works, but no matter what exposure mode I try the result is always the same: that exposure mode isn't supported by the device.

Yet I know that isn't true, since it works in other camera apps on the same devices (testing on iPhone 4 and iPhone 5), and doing [device isExposurePointOfInterestSupported] returns YES.

LP0 ON FIRE
Jan 25, 2006

beep boop

Carthag posted:

Well method calls are only type-checked at compile-time, and I guess CCNode doesn't respond to that one. When you use id, the compiler assumes you know what you're doing and you can send any message at at all to it (as long as it's included from some header).

I think calling a non-recognized selector isn't a fatal exception, just a no-op, so that might be what's happening, so set a symbolic breakpoint on -[NSObject doesNotRecognizeSelector:] so you'll immediately know when you're trying to call methods that aren't defined on some object.

Where's getJoinedMapsLayerPosition defined? In a category or CCNode subclass or?

Set a breakpoint right after [scene getChildByTag:0]; and check what is actually returned. po [layer className] in the debugger will tell you what class it actually is.

Doc Block posted:

Calling an unrecognized selector is most definitely a fatal exception. Try it and see. The only object that won't throw an exception if you call a nonexistent selector on it is nil.

LP0, the only thing I can think of is that you shouldn't assume that the transitions are implemented by moving the scene object.

Froist posted:

Are you sure 'layer' is coming back as a valid pointer from the getChildByTag call? You can happily send messages to a null pointer and the code will just continue as if nothing's happened, unlike java/C++/etc where it would cause a null pointer exception.

Thank you, I actually really never noticed id allows me to call any method whether it exists or not! getJoinedMapsLayerPosition is in a CCScene. I think I have a misunderstanding what runningScene does. It may not give access to the scene's class, but according to another post, it looks like it does. I've tried calling a method to the supposed layer that's added to the scene and the scene itself without any success.

Doc Block, even though there is a chance that transitions are not implemented by moving the scene object, I've found that I had no luck calling a method from the running scene. I'm going to concentrate on getting there first and let you know how it goes.

EDIT: Something rather interesting happened when I tried to point to my scene class with running scene and call a method from it:

code:
JoinedMapsScene * scene = (JoinedMapsScene *)[[CCDirector sharedDirector] runningScene];			
[scene getJoinedMapsLayerPosition];
I was hoping this would solve it in terms of being able to just call a method from the scene class, but gives me this exception:
-[ExitLTransition getJoinedMapsLayerPosition]: unrecognized selector sent to instance 0x5e4e20

I guess for however Cocos2D works, it's trying to call the method in the transition class. I guess while running a scene transition using replaceScene with the transition kind (class), the scene becomes the transition?!

i.e.
code:
[[CCDirector sharedDirector] replaceScene: [ExitUTransition transitionWithDuration:5.4 scene: [JoinedMapsScene scene]]];

LP0 ON FIRE fucked around with this message at 16:39 on Oct 8, 2012

Doc Block
Apr 15, 2003
Fun Shoe
id is a generic type for all Objective-C objects (i.e. you don't care what kind of object gets passed to a method so you just make the method take an id object), but that doesn't mean an object cast to id suddenly responds to all selectors.

Check to see whether or not you're getting nil.

LP0 ON FIRE
Jan 25, 2006

beep boop
Thanks Doc Block. Please check out my edit.

Doc Block
Apr 15, 2003
Fun Shoe

LP0 ON FIRE posted:

code:
JoinedMapsScene * scene = (JoinedMapsScene *)[[CCDirector sharedDirector] runningScene];			
[scene getJoinedMapsLayerPosition];
-[ExitLTransition getJoinedMapsLayerPosition]: unrecognized selector sent to instance 0x5e4e20

The error message means the object you're getting back from the [[CCDirector sharedDirector] runningScene] call doesn't respond to -getJoinedMapsLayerPosition. In fact, the error message even tells you what class you're getting: ExitLTransition.

My guess is that Cocos2D creates a new scene just for handling the transition, or something like that.

Doc Block
Apr 15, 2003
Fun Shoe

Doc Block posted:

Could someone please look at this and tell me if there's something wrong with the way I'm trying to set the exposure point-of-interest with AVFoundation?

What should happen is that when the user taps on the view, the focus point and exposure point should be set there, and the camera should lock focus and exposure on that point. The focusing works, but no matter what exposure mode I try the result is always the same: that exposure mode isn't supported by the device.

Yet I know that isn't true, since it works in other camera apps on the same devices (testing on iPhone 4 and iPhone 5), and doing [device isExposurePointOfInterestSupported] returns YES.

Found the answer to my own question.

If you want to be able to tap on a part of the preview and have the camera expose for that point in the image, you have to use AVCaptureExposureModeContinuousAutoExposure instead of AVCaptureExposureModeAutoExpose.

I was hoping you could just tap on an area and have the camera permanently lock the exposure settings to expose for that point (which is what the docs say AVCaptureExposureModeAutoExpose does), but AVCaptureExposureModeContinuousAutoExposure will at least expose for that area until there's a significant change.

LP0 ON FIRE
Jan 25, 2006

beep boop

Doc Block posted:

The error message means the object you're getting back from the [[CCDirector sharedDirector] runningScene] call doesn't respond to -getJoinedMapsLayerPosition. In fact, the error message even tells you what class you're getting: ExitLTransition.

My guess is that Cocos2D creates a new scene just for handling the transition, or something like that.

Exactly, that's my guess too. I'll need to figure out another way to see where the transitioned "screen" is positioned while the transition happens.

LP0 ON FIRE fucked around with this message at 18:26 on Oct 8, 2012

Bonefish
Jul 29, 2008
I am making an app for my college radio stations wordpress based website.

So far, grabbing the RSS data from the articles and putting that HTML into a webview with some custom CSS has been working great. In fact, the only issue we have is with the embedded JW audio player in some of the articles. When the page data is sent via rss, the embed code (which I think is just a shortcode anyways) just doesn't even show up at all where its supposed to be, not even the shortcode. We're not tied to using JW player on the site in any way and wouldn't mind switching to a different player to make the app easier. Does anyone know of a good imbedded HTML5 audio player that is easy to use on the web side and would show up right in the UIWebView?

We already tried Soundcloud. It works alright, but looks kinda clunky, so I would like to look at other options before settling.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
The built-in control for the <audio> tag is one of the least terrible, I'd try it if you haven't.

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



LP0 ON FIRE posted:

Exactly, that's my guess too. I'll need to figure out another way to see where the transitioned "screen" is positioned while the transition happens.

If the getJoinedMapsLayerPosition can be derived exclusively from data available to a CCTransitionScene instance (its properties, subNodes, layers, etc), you could add the method in a category and it'll work as long as you're getting at least some kind of transition scene.

I assume ExitLTransition is some kind of CCTransitionScene.

Adbot
ADBOT LOVES YOU

LP0 ON FIRE
Jan 25, 2006

beep boop

Carthag posted:

If the getJoinedMapsLayerPosition can be derived exclusively from data available to a CCTransitionScene instance (its properties, subNodes, layers, etc), you could add the method in a category and it'll work as long as you're getting at least some kind of transition scene.

I assume ExitLTransition is some kind of CCTransitionScene.

ExitLTransition is my own class of CCTransitionSlideInL, though I can't remember exactly why I did this since it's from more than a year ago. I'll have to look into more of what you are saying, but I have tried seeing the size of the scene's layers array, which is 0 by doing the following:

code:
ExitLTransition * scene = (ExitLTransition *)[[CCDirector sharedDirector] runningScene];
	
CCArray* layers = scene.children;
	
NSLog(@"%i",[layers count]);
I'll see how I can implement a category into this and try it, although I have a feeling that a scene's position is no longer going to be a factor.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply