Custom resources

View previous topic View next topic Go down

Custom resources

Post  Don Jaffa on Mon May 25, 2009 12:11 pm

Hey, I was just wondering if anyone knows the code to add an object to a specific resource rather than the standard 'everything' resource.

I.e. if I am running a section of code that duplicates an existing object, what do i write to add the duplicated object to the 'level' SIO2resource?

Thanks for any help, this problem has been my nemesis since I started using SIO2 (well, part of the despawning problem I had ages ago and still havent managed to fix Crying or Very sad )

Don Jaffa

Posts : 49
Join date : 2009-02-19

View user profile

Back to top Go down

Re: Custom resources

Post  Don Jaffa on Tue May 26, 2009 3:47 am

No-one knows?

Don Jaffa

Posts : 49
Join date : 2009-02-19

View user profile

Back to top Go down

Re: Custom resources

Post  sio2interactive on Tue May 26, 2009 3:56 am

just bind the sio2->_SIO2resource handle to another SIO2resource then add whatever you want to it...

_________________
SIO2 Interactive
Free Open Source 3D Game Engine for iPhone and iPod Touch
http://sio2interactive.com
avatar
sio2interactive

Posts : 1526
Join date : 2008-08-26
Age : 38
Location : Shanghai

View user profile http://sio2interactive.com

Back to top Go down

Re: Custom resources

Post  Don Jaffa on Tue May 26, 2009 4:49 am

Now what your saying seems really simple but its refusing to work.

This is what i do:

Code:

SIO2resource *level = NULL;
SIO2resource *playerentity = NULL;
...
...
sio2->_SIO2resource = playerentity;
...
//add player entity objects here
...

sio2->_SIO2resource = level;
...
run the script that duplicates the object here
...

{
   static unsigned int i = 0;
   
   if (i != level->n_object)
   {
      ++TEST_VAL1;
   }
   ++i;



But when I run it I get a 'EXC_BAD_ACCESS' error here:

Code:

case SIO2_OBJECT:
      {
         
         //This next lines gets the error
         while( i != _SIO2resource->n_object )
         {
            SIO2object *_SIO2object = ( SIO2object * )_SIO2resource->_SIO2object[ i ];
            
            if( !sio2StringCmp( _SIO2object->name, _name ) )
            { return _SIO2resource->_SIO2object[ i ]; }
            
            ++i;
         }
         
         break;
      }


Sorry if I'm being really stupid but this is so frustrating Im losing the will to carry on with the project, i really need a pointer to show me where I'm going wrong.

Cheers

Don Jaffa

Posts : 49
Join date : 2009-02-19

View user profile

Back to top Go down

Re: Custom resources

Post  sio2interactive on Tue May 26, 2009 4:57 am

Have you initialize the dictionary of both resources?

_________________
SIO2 Interactive
Free Open Source 3D Game Engine for iPhone and iPod Touch
http://sio2interactive.com
avatar
sio2interactive

Posts : 1526
Join date : 2008-08-26
Age : 38
Location : Shanghai

View user profile http://sio2interactive.com

Back to top Go down

Re: Custom resources

Post  Don Jaffa on Tue May 26, 2009 5:04 am

Ahh, no I didn't realise that thankyou (thought now I'm getting the bad access error here):
Code:

void sio2ResourceAddEntry( SIO2resource        *_SIO2resource,
                    char              *_str,
                    SIO2parsercallback *_root,
                    SIO2parsercallback *_custom )
{
   ++_SIO2resource->n_entry;
   
   _SIO2resource->_SIO2entry = ( SIO2entry * ) realloc( _SIO2resource->_SIO2entry, _SIO2resource->n_entry * sizeof( SIO2entry ) );
   
   sio2StringCpy( _SIO2resource->_SIO2entry[ _SIO2resource->n_entry - 1 ].str, _str );
   
   _SIO2resource->_SIO2entry[ _SIO2resource->n_entry - 1 ].root  = _root;
   _SIO2resource->_SIO2entry[ _SIO2resource->n_entry - 1 ].custom = _custom;
}

1 thing I think may be giving me problems - does the resources struct refer to the 'blahblah.sio2' files? So if I want a resource called 'level' will I need a 'level.sio2' file, or can I keep all my objects in my main 'game.sio2' file?

Don Jaffa

Posts : 49
Join date : 2009-02-19

View user profile

Back to top Go down

Re: Custom resources

Post  sio2interactive on Tue May 26, 2009 5:07 am

No necessarily, personally I have like over a dozen .sio2, for each level, characters, UI etc... all with different name have no importance...

_________________
SIO2 Interactive
Free Open Source 3D Game Engine for iPhone and iPod Touch
http://sio2interactive.com
avatar
sio2interactive

Posts : 1526
Join date : 2008-08-26
Age : 38
Location : Shanghai

View user profile http://sio2interactive.com

Back to top Go down

Re: Custom resources

Post  Don Jaffa on Tue May 26, 2009 5:35 am

Is there a tutorial that uses separate sio2resources that I can take a look at and see what's going wrong with mine?

Don Jaffa

Posts : 49
Join date : 2009-02-19

View user profile

Back to top Go down

Re: Custom resources

Post  monkeys on Wed Aug 05, 2009 10:41 pm

I would also like to see a tutorial with multiple resources, as I really can;t seem to get my head around how to implement multiple resources.

A tutorial on that would be fantastic!!

monkeys

Posts : 8
Join date : 2009-07-22

View user profile

Back to top Go down

Re: Custom resources

Post  sio2interactive on Wed Aug 05, 2009 10:55 pm

Every resources in the MeditationGarden are independent... the garden, bird, fish, butterfly, UI etc... its a great resource to learn how to mix everything together. I highly suggest it to you.


Last edited by sio2interactive on Fri Aug 07, 2009 9:16 pm; edited 1 time in total

_________________
SIO2 Interactive
Free Open Source 3D Game Engine for iPhone and iPod Touch
http://sio2interactive.com
avatar
sio2interactive

Posts : 1526
Join date : 2008-08-26
Age : 38
Location : Shanghai

View user profile http://sio2interactive.com

Back to top Go down

Re: Custom resources

Post  oioioi on Thu Aug 06, 2009 5:29 am

Just one quick question while we're on resources: why have you added a name to the resources in 1.4? I can't see it being used in anything but the init function

oioioi

Posts : 136
Join date : 2008-12-02
Location : Norway

View user profile

Back to top Go down

Re: Custom resources

Post  sio2interactive on Thu Aug 06, 2009 6:09 am

well when you have multiple SIO2resource handle that call sio2ResourceRender and suddenly it crash im sure you would like to know from which SIO2resource it come from not just something like 0xa828a0 Wink

_________________
SIO2 Interactive
Free Open Source 3D Game Engine for iPhone and iPod Touch
http://sio2interactive.com
avatar
sio2interactive

Posts : 1526
Join date : 2008-08-26
Age : 38
Location : Shanghai

View user profile http://sio2interactive.com

Back to top Go down

Re: Custom resources

Post  oioioi on Thu Aug 06, 2009 7:27 am

smart Smile

oioioi

Posts : 136
Join date : 2008-12-02
Location : Norway

View user profile

Back to top Go down

Re: Custom resources

Post  yarri on Thu Aug 06, 2009 9:51 am

Hi, while I encourage everyone to sponsor Romain and I'm sure the source code to iZenGarden has a lot of cool tricks, I found it pretty straight forward to load multiple resources. My code is something like this (sorry, still at 1.3.5):

templateLoading():
Code:

   if( !sio2->_SIO2resource->n_entry )
   { sio2ResourceCreateDictionary( sio2->_SIO2resource ); }
      
   if( !sio2->_SIO2resource->uf )
   {
      char scene_name [64];
      sprintf(scene_name, "scene%02d.sio2", scene_number);
      printf("Loading %s ...\n",  scene_name);
      sio2ResourceOpen( sio2->_SIO2resource, scene_name, 1 );
   }
   
   if( i != sio2->_SIO2resource->gi.number_entry )
   {
      sio2ResourceExtract( sio2->_SIO2resource, NULL );
      ++i;
   }
   else
   {
      sio2ResourceClose( sio2->_SIO2resource );
      sio2ResourceOpen( sio2->_SIO2resource, "character.sio2", 1 );
      int i = 0;
      while( i != sio2->_SIO2resource->gi.number_entry )
      {
         sio2ResourceExtract( sio2->_SIO2resource, NULL );
         ++i;
      }
      sio2ResourceClose( sio2->_SIO2resource );
   }

Not sure if this helps you?

--doug

yarri

Posts : 81
Join date : 2009-04-10

View user profile

Back to top Go down

Re: Custom resources

Post  Sponsored content


Sponsored content


Back to top Go down

View previous topic View next topic Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum