Seite 101 von 340 ErsteErste ... 51 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 151 201 ... LetzteLetzte
Zeige Ergebnis 3.001 bis 3.030 von 10174

C/C++ Programming Help Thread

This is a discussion on C/C++ Programming Help Thread within the PSP Development Forum forums, part of the PSP Development, Hacks, and Homebrew category; The problem is that you enter a never ending loop before flipping the screen. So you never run the flipScreen() ...

  
  1. #3001
    Developer
    Points: 5.359, Level: 47
    Level completed: 5%, Points required for next Level: 191
    Overall activity: 0%

    Registriert seit
    Feb 2006
    Ort
    Norway
    Beiträge
    384
    Points
    5.359
    Level
    47
    Downloads
    0
    Uploads
    0

    Standard

    The problem is that you enter a never ending loop before flipping the screen. So you never run the flipScreen() function.

    move the function call over the while(1) loop.




  2. #3002
    Points: 3.536, Level: 37
    Level completed: 24%, Points required for next Level: 114
    Overall activity: 0%

    Registriert seit
    Dec 2006
    Beiträge
    14
    Points
    3.536
    Level
    37
    Downloads
    0
    Uploads
    0

    Standard

    thanks works now

  3. #3003
    QJ Gamer Silver
    Points: 7.278, Level: 56
    Level completed: 64%, Points required for next Level: 72
    Overall activity: 0%

    Registriert seit
    Oct 2006
    Ort
    Pimp'en in the US F#
    Beiträge
    1.254
    Points
    7.278
    Level
    56
    Downloads
    0
    Uploads
    0

    Standard

    Zitat Zitat von BlackShark
    This question may seem a bit vague but, What pre-installed Libraries do you need to compile DoomPSP?
    Thanks
    mm Im having no luck with this Does DoomPSP use the SDL library?
    The Wentire Worls in two Sectors....
    When did I get dev statz?
    Spoiler for my PSP homebrewReleases:
    Ace of Space V1|PvP Pong Online|PvP Pong v3 | 3.03 BlackShark Custom Firmware
    (PvP Pong DL'ed well over 2403 times combined! get yours now!)
    Spoiler for Great Quotes:

    "No Snowflake in an Avalanche ever feels responsible....." - Fortune Cookie.

  4. #3004
    QJ Gamer Silver
    Points: 11.326, Level: 70
    Level completed: 19%, Points required for next Level: 324
    Overall activity: 0%

    Registriert seit
    Jan 2006
    Beiträge
    871
    Points
    11.326
    Level
    70
    Downloads
    0
    Uploads
    0

    Standard

    HI, I not that good at C so i wen to modify Insomniac Full Game Tutorial but I got some problems here is the code:

    Code:
    #include <pspkernel.h>
    #include <pspdisplay.h>
    #include <pspctrl.h>
    #include "graphics.h"
    #include "game.h"
    
    PSP_MODULE_INFO("Game Tutorial Part 1: Menu", 0, 1, 1);
    
    #define RGB(r, g, b) ((r)|((g)<<8)|((b)<<16))
    
    /* Exit callback */
    int exit_callback(int arg1, int arg2, void *common) {
              sceKernelExitGame();
              return 0;
    }
    
    /* Callback thread */
    int CallbackThread(SceSize args, void *argp) {
              int cbid;
    
              cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
              sceKernelRegisterExitCallback(cbid);
    
              sceKernelSleepThreadCB();
    
              return 0;
    }
    
    /* Sets up the callback thread and returns its thread id */
    int SetupCallbacks(void) {
              int thid = 0;
    
              thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
              if(thid >= 0) {
                        sceKernelStartThread(thid, 0, 0);
              }
    
              return thid;
    }
    
    //GLOBAL VARIABLES
    int DifficultySetting = 1;
    
    int main(void) {
        SetupCallbacks();
        initGraphics();
    
        SceCtrlData pad, lastpad;
    
        sceCtrlReadBufferPositive(&lastpad, 1);
        
        Image* Background;
        Background = loadImage("./Images/Background.png");
    
        Color EasyMode = RGB(0, 0, 0);
        Color MediumMode = RGB(0, 0, 0);
        Color HardMode = RGB(0, 0, 0);
        
        int StartMenu = 1;
        int DifMenu = 0;
        int StartPos = 1;
        extern int DifficultySetting;
    
        while(1) {
          sceCtrlReadBufferPositive(&pad, 1);
    
          if(pad.Buttons != lastpad.Buttons) {
          lastpad = pad;
    
          if(pad.Buttons & PSP_CTRL_CROSS)
          {
            if (StartMenu == 1)
               {
               StartMenu = 0;
               DifMenu = 1;
               DifficultySetting = 1;
               StartPos = 0;
               }
            else if (StartPos == 2)
            {
               sceKernelExitGame();
               }
            else if (DifMenu == 1)
            {
             //Start The Game
             Game();
             StartMenu = 1;
            }
          }
    
          if(pad.Buttons & PSP_CTRL_CIRCLE)
          {
            if (DifMenu == 1)
               {
               StartMenu = 1;
               StartPos = 1;
               DifMenu = 0;
               }
          }
    
    
          if(pad.Buttons & PSP_CTRL_UP)
          {
            if (DifMenu == 1)
               {
               DifficultySetting--;
               if (DifficultySetting < 1)
               DifficultySetting = 3;
               }
               else if (StartMenu == 1){
                    StartPos--;
                    if (StartPos < 1)
                    StartPos = 2;
                    }
               }
    
          if(pad.Buttons & PSP_CTRL_DOWN)
          {
           if (DifMenu == 1)
               {
               DifficultySetting++;
               if (DifficultySetting > 3)
               DifficultySetting = 1;
               }
               else if (StartMenu == 1){
                    StartPos++;
                    if (StartPos > 2)
                    StartPos = 1;         
                    }
    
              }
    
        blitAlphaImageToScreen(0, 0 , 480, 272, Background, 0, 0);
    
        if (StartPos == 1)
        {
        printTextScreen(170, 140, "Start Game", RGB(191, 0, 0));
        printTextScreen(170,150, "Exit",RGB(191, 170, 0));
        }
        
        else if (StartPos == 2)
        {
        printTextScreen(170, 140, "Start Game", RGB(191, 170, 0));
        printTextScreen(170,150, "Exit",RGB(191, 0, 0));  
        }
        
        else if (DifMenu == 1)
        {
          if (DifficultySetting == 1)
          {
           EasyMode = RGB(191, 0, 0);
           MediumMode = RGB(191, 170, 0);
           HardMode = RGB(191, 170, 0);
          }
          else if (DifficultySetting == 2)
          {
           EasyMode = RGB(191, 170, 0);
           MediumMode = RGB(191, 0, 0);
           HardMode = RGB(191, 170, 0);
          }
          else if (DifficultySetting == 3)
          {
           EasyMode = RGB(191, 170, 0);
           MediumMode = RGB(191, 170, 0);
           HardMode = RGB(191, 0, 0);
          }
    
        printTextScreen(170, 140, "Easy", EasyMode);
        printTextScreen(170, 150, "Medium", MediumMode);
        printTextScreen(170, 160, "Hard", HardMode);
        }
    
        sceDisplayWaitVblankStart();
        flipScreen();
    
        }
        sceKernelSleepThread();
        return 0;
    }
    }
    Everything compiles fine i get no error no warning but when I load it up on my psp it just stays black I can exit with Home but that about it.
    Free Prizes at Prizerebel Join us!
    I already got 11 Gifts. Ask me for details or proof.

  5. #3005
    Developer
    Points: 7.577, Level: 58
    Level completed: 14%, Points required for next Level: 173
    Overall activity: 0%

    Registriert seit
    Mar 2006
    Beiträge
    1.026
    Points
    7.577
    Level
    58
    Downloads
    0
    Uploads
    0

    Standard

    You just had a } in the wrong place mate, I've commented where in the code.
    Spoiler for Code:

    Code:
    #include <pspkernel.h>
    #include <pspdisplay.h>
    #include <pspctrl.h>
    #include "graphics.h"
    #include "game.h"
    
    PSP_MODULE_INFO("Game Tutorial Part 1: Menu", 0, 1, 1);
    
    #define RGB(r, g, b) ((r)|((g)<<8)|((b)<<16))
    
    /* Exit callback */
    int exit_callback(int arg1, int arg2, void *common) {
              sceKernelExitGame();
              return 0;
    }
    
    /* Callback thread */
    int CallbackThread(SceSize args, void *argp) {
              int cbid;
    
              cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
              sceKernelRegisterExitCallback(cbid);
    
              sceKernelSleepThreadCB();
    
              return 0;
    }
    
    /* Sets up the callback thread and returns its thread id */
    int SetupCallbacks(void) {
              int thid = 0;
    
              thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
              if(thid >= 0) {
                        sceKernelStartThread(thid, 0, 0);
              }
    
              return thid;
    }
    
    //GLOBAL VARIABLES
    int DifficultySetting = 1;
    
    int main(void) {
        SetupCallbacks();
        initGraphics();
    
        SceCtrlData pad, lastpad;
    
        sceCtrlReadBufferPositive(&lastpad, 1);
        
        Image* Background;
        Background = loadImage("./Images/Background.png");
    
        Color EasyMode = RGB(0, 0, 0);
        Color MediumMode = RGB(0, 0, 0);
        Color HardMode = RGB(0, 0, 0);
        
        int StartMenu = 1;
        int DifMenu = 0;
        int StartPos = 1;
        extern int DifficultySetting;
    
        while(1) {
          sceCtrlReadBufferPositive(&pad, 1);
    
          if(pad.Buttons != lastpad.Buttons) {
          lastpad = pad;
    
          if(pad.Buttons & PSP_CTRL_CROSS)
          {
            if (StartMenu == 1)
               {
               StartMenu = 0;
               DifMenu = 1;
               DifficultySetting = 1;
               StartPos = 0;
               }
            else if (StartPos == 2)
            {
               sceKernelExitGame();
               }
            else if (DifMenu == 1)
            {
             //Start The Game
             Game();
             StartMenu = 1;
            }
          }
    
          if(pad.Buttons & PSP_CTRL_CIRCLE)
          {
            if (DifMenu == 1)
               {
               StartMenu = 1;
               StartPos = 1;
               DifMenu = 0;
               }
          }
    
    
          if(pad.Buttons & PSP_CTRL_UP)
          {
            if (DifMenu == 1)
               {
               DifficultySetting--;
               if (DifficultySetting < 1)
               DifficultySetting = 3;
               }
               else if (StartMenu == 1){
                    StartPos--;
                    if (StartPos < 1)
                    StartPos = 2;
                    }
               }
    
          if(pad.Buttons & PSP_CTRL_DOWN)
          {
           if (DifMenu == 1)
               {
               DifficultySetting++;
               if (DifficultySetting > 3)
               DifficultySetting = 1;
               }
               else if (StartMenu == 1){
                    StartPos++;
                    if (StartPos > 2)
                    StartPos = 1;         
                    }
    
              }
          } // MOVED THIS HERE FROM THE BOTTOM
    
        blitAlphaImageToScreen(0, 0 , 480, 272, Background, 0, 0);
    
        if (StartPos == 1)
        {
        printTextScreen(170, 140, "Start Game", RGB(191, 0, 0));
        printTextScreen(170,150, "Exit",RGB(191, 170, 0));
        }
        
        else if (StartPos == 2)
        {
        printTextScreen(170, 140, "Start Game", RGB(191, 170, 0));
        printTextScreen(170,150, "Exit",RGB(191, 0, 0));  
        }
        
        else if (DifMenu == 1)
        {
          if (DifficultySetting == 1)
          {
           EasyMode = RGB(191, 0, 0);
           MediumMode = RGB(191, 170, 0);
           HardMode = RGB(191, 170, 0);
          }
          else if (DifficultySetting == 2)
          {
           EasyMode = RGB(191, 170, 0);
           MediumMode = RGB(191, 0, 0);
           HardMode = RGB(191, 170, 0);
          }
          else if (DifficultySetting == 3)
          {
           EasyMode = RGB(191, 170, 0);
           MediumMode = RGB(191, 170, 0);
           HardMode = RGB(191, 0, 0);
          }
    
        printTextScreen(170, 140, "Easy", EasyMode);
        printTextScreen(170, 150, "Medium", MediumMode);
        printTextScreen(170, 160, "Hard", HardMode);
        }
    
        sceDisplayWaitVblankStart();
        flipScreen();
    
    }
    sceKernelSleepThread();
        return 0;
    }


    I didn't check for any other errors, but that should at least get you something on the screen :)

    Check out my homebrew & C tutorials at http://insomniac.0x89.org/
    Coder formerly known as Insomniac197

    tshirtz: what is irshell ??
    Atarian_: it's where people who work for the IRS go when they die

  6. #3006
    QJ Gamer Silver
    Points: 7.278, Level: 56
    Level completed: 64%, Points required for next Level: 72
    Overall activity: 0%

    Registriert seit
    Oct 2006
    Ort
    Pimp'en in the US F#
    Beiträge
    1.254
    Points
    7.278
    Level
    56
    Downloads
    0
    Uploads
    0

    Standard

    mm, does DoomPSP need Visual C++ to compile or can DevCPP and/or batch file compile it?
    and How can I get the SDL library? svn commands do not work for me for some reason.
    The Wentire Worls in two Sectors....
    When did I get dev statz?
    Spoiler for my PSP homebrewReleases:
    Ace of Space V1|PvP Pong Online|PvP Pong v3 | 3.03 BlackShark Custom Firmware
    (PvP Pong DL'ed well over 2403 times combined! get yours now!)
    Spoiler for Great Quotes:

    "No Snowflake in an Avalanche ever feels responsible....." - Fortune Cookie.

  7. #3007
    QJ Gamer Silver
    Points: 11.326, Level: 70
    Level completed: 19%, Points required for next Level: 324
    Overall activity: 0%

    Registriert seit
    Jan 2006
    Beiträge
    871
    Points
    11.326
    Level
    70
    Downloads
    0
    Uploads
    0

    Standard

    Insert_Witty_Name I place the bracket at the end but I still have nothing it stays black and if I delete the bracket I get a error:

    main.c: In function 'main':
    main.c:179: error: syntax error at end of input
    make: *** [main.o] Error 1

    You think you see any other error because I don't.
    Free Prizes at Prizerebel Join us!
    I already got 11 Gifts. Ask me for details or proof.

  8. #3008
    words are stones in my <3
    Points: 35.274, Level: 100
    Level completed: 0%, Points required for next Level: 0
    Overall activity: 0%

    Registriert seit
    Jul 2005
    Ort
    Spokane
    Beiträge
    5.008
    Points
    35.274
    Level
    100
    My Mood
    Lonely
    Downloads
    1
    Uploads
    0

    Standard

    Zero - You need to add the bracket to where it belongs, not just the end of the file.

    Ex:
    Code:
    int main(){
      pspDebugScreenInit();
    
      for(int i = 0; i<10; i++; ) { printf("i = %i",%i);
    
      return 0;
    }
    }
    See, that would compile without an error, but is very wrong, Same condition your in. It should be:
    Code:
    int main(){
      pspDebugScreenInit();
    
      for(int i = 0; i<10; i++; ) { printf("i = %i",%i); }
    
      return 0;
    }
    Also, I think IWN gave you the correct version of your code.

    ...at what speed must I live.. to be able to see you again?...

    Projects

    You can support my Open World 3D RPG for PSP by voting for it here


  9. #3009
    MiG
    MiG ist offline
    QJ Gamer Blue
    Points: 5.848, Level: 49
    Level completed: 49%, Points required for next Level: 102
    Overall activity: 0%

    Registriert seit
    Jun 2006
    Ort
    UK
    Beiträge
    499
    Points
    5.848
    Level
    49
    Downloads
    0
    Uploads
    0

    Standard

    just to add, the writing style of the code above me is atrocious, and is shown below:

    Code:
    int main(){
      pspDebugScreenInit();
    
      for(int i = 0; i<10; i++; ) { printf("i = %i",%i); }
    
      return 0;
    }
    i would write it as:

    Code:
    int main()
    {
        pspDebugScreenInit();
        for(int i = 0; i<10; i++ ) 
        { 
            printf("i = %i",%i); 
        }
        return 0;
    }
    much nicer....

    o, and there was an error in that you don't need a ; after i++

  10. #3010
    Developer
    Points: 7.577, Level: 58
    Level completed: 14%, Points required for next Level: 173
    Overall activity: 0%

    Registriert seit
    Mar 2006
    Beiträge
    1.026
    Points
    7.577
    Level
    58
    Downloads
    0
    Uploads
    0

    Standard

    And I would write it as:

    Code:
    int main()
    {
        pspDebugScreenInit();
    
        for(int i = 0; i<10; i++) 
            printf("i = %i",%i); 
    
        return 0;
    }
    Even nicer ;)

    Check out my homebrew & C tutorials at http://insomniac.0x89.org/
    Coder formerly known as Insomniac197

    tshirtz: what is irshell ??
    Atarian_: it's where people who work for the IRS go when they die

  11. #3011
    Developer
    Points: 12.154, Level: 72
    Level completed: 26%, Points required for next Level: 296
    Overall activity: 0%

    Registriert seit
    Oct 2005
    Ort
    Dubuque
    Beiträge
    423
    Points
    12.154
    Level
    72
    My Mood
    Lurking
    Downloads
    1
    Uploads
    0

    Standard

    And I would write it as...
    Code:
    int main()
    {
        pspDebugScreenInit();
        int i;
    
        for(i = 0; i<10; i++) 
            printf("i = %i",i); 
    
        return 0;
    }
    So that it will actually compile, I don't know where the second %i came from, maybe a typo.. but initially declaring variables in the for loop won't compile unless you add the -std=c99 to the compiler flags.
    PSP Demo Videos (updated 11/29/08)
    MinerPSP Coder

  12. #3012
    Developer
    Points: 7.577, Level: 58
    Level completed: 14%, Points required for next Level: 173
    Overall activity: 0%

    Registriert seit
    Mar 2006
    Beiträge
    1.026
    Points
    7.577
    Level
    58
    Downloads
    0
    Uploads
    0

    Standard

    Or are using C++ ;)

    Check out my homebrew & C tutorials at http://insomniac.0x89.org/
    Coder formerly known as Insomniac197

    tshirtz: what is irshell ??
    Atarian_: it's where people who work for the IRS go when they die

  13. #3013
    QJ Gamer Gold
    Points: 14.678, Level: 78
    Level completed: 57%, Points required for next Level: 172
    Overall activity: 0%

    Registriert seit
    Nov 2006
    Beiträge
    1.523
    Points
    14.678
    Level
    78
    Downloads
    0
    Uploads
    0

    Standard

    Post needs to be deleted!

  14. #3014
    words are stones in my <3
    Points: 35.274, Level: 100
    Level completed: 0%, Points required for next Level: 0
    Overall activity: 0%

    Registriert seit
    Jul 2005
    Ort
    Spokane
    Beiträge
    5.008
    Points
    35.274
    Level
    100
    My Mood
    Lonely
    Downloads
    1
    Uploads
    0

    Standard

    Ive been using C++ for about 2 months now, ever since I got my PSP back. Its just a habit, and honestly, you dont even need to know C++ to use it's benefits. Simply rename your main.c to main.cpp, and include -lstdc++ to your makefile libs line and your set.

    MiG - As for my atrocious coding style, I'm sorry but I don't like typing more than I have to. Your method is ugly to me, as it has entire lines, all completely blank except for one {. Waste of space on that line, along iwth the closing bracket line, so it just adds to the file size of the source (despite how small the increment is, it still increases as there are extra newline chars, extra spaces, etc.). Please, keep your stereotypical coding style and comments to yourself. You code your stye, Ill code mine, let others decide for themselves there style (the way you came off, it soundedas if you were convincing others to code your style).

    P.S. Sorry if this comes off as an insult, but yours certainly did to me.
    -= Double Post =-
    Also, a little offtopic, but does anyone know Twin891 (i think thats the numbers after it) 's MSN address? I need to talk to him and PMs aren't cutting it unfortunatly
    Geändert von SG57 (03-01-2007 um 04:49 PM Uhr) Grund: Automerged Doublepost

    ...at what speed must I live.. to be able to see you again?...

    Projects

    You can support my Open World 3D RPG for PSP by voting for it here


  15. #3015
    QJ Gamer Gold
    Points: 17.453, Level: 84
    Level completed: 21%, Points required for next Level: 397
    Overall activity: 0%

    Registriert seit
    Jul 2005
    Ort
    everywhere
    Beiträge
    3.526
    Points
    17.453
    Level
    84
    Downloads
    1
    Uploads
    0

    Standard

    hmm need a little help with the srand call normaly it works like:

    srand(time(NULL));

    but i keep getting the error that time has not been declared

    librarys i'm using:
    #include <stdlib.h>
    #include <pspgu.h>
    #include <pspkernel.h>
    #include <pspdisplay.h>
    #include <pspctrl.h>
    #include <stdio.h>
    #include <math.h>
    #include <malloc.h>
    #include <stdlib.h>
    #include <psprtc.h>
    #include <pspgum.h>

    and my makefile:
    TARGET = celestialcunning
    OBJS = ./main.o

    INCDIR =
    LIBDIR =
    LDFLAGS =

    CFLAGS = -O2 -G0 -Wall
    CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
    ASFLAGS = $(CFLAGS)

    LIBS= -lz -lpspsdk -lpspctrl -lpsprtc -lpspgum -lpspgu -lm

    EXTRA_TARGETS = EBOOT.PBP
    PSP_EBOOT_TITLE = celestial cunning

    PSPSDK = $(shell psp-config --pspsdk-path)
    include $(PSPSDK)/lib/build.mak

    ./main.o: ./main.c
    $(CXX) $(CXXFLAGS) -c ./main.c -o ./main.o


    not sure why but that call always worked for my other games
    -= Double Post =-
    well nvm again as i found out i forgot the time.h header so now it works=-)
    Geändert von slicer4ever (03-01-2007 um 06:56 PM Uhr) Grund: Automerged Doublepost
    1. Failed....again...
    2. http://slicer.gibbocool.com/ stay updated on all my projects
    3. it'll be 5 years in june, that's nearly 1/4 of my life on this planet that i've visited these forums, what a ride it has been

  16. #3016
    words are stones in my <3
    Points: 35.274, Level: 100
    Level completed: 0%, Points required for next Level: 0
    Overall activity: 0%

    Registriert seit
    Jul 2005
    Ort
    Spokane
    Beiträge
    5.008
    Points
    35.274
    Level
    100
    My Mood
    Lonely
    Downloads
    1
    Uploads
    0

    Standard

    Im getting weird results with my skybox. The thing is, Im loading and setting the same texture envirorment settings for each texture, yet 3 out of the 6 have very pixelated look.

    You can see here that the left wall, has blocky look (pixelated but very large) and the right wall is smooth, how i want it.

    The walls that are the problem are, i believe, the west wall, and floor and ceiling. Would anyone happen to know why? If you need my texture envirorment settings for my skybox, just ask.

    ...at what speed must I live.. to be able to see you again?...

    Projects

    You can support my Open World 3D RPG for PSP by voting for it here


  17. #3017
    Developer
    Points: 7.577, Level: 58
    Level completed: 14%, Points required for next Level: 173
    Overall activity: 0%

    Registriert seit
    Mar 2006
    Beiträge
    1.026
    Points
    7.577
    Level
    58
    Downloads
    0
    Uploads
    0

    Standard

    From that screenshot it looks vertical striped, are you sure your tesselation isn't +/- 1 out vertically?

    Check out my homebrew & C tutorials at http://insomniac.0x89.org/
    Coder formerly known as Insomniac197

    tshirtz: what is irshell ??
    Atarian_: it's where people who work for the IRS go when they die

  18. #3018
    QJ Gamer Silver
    Points: 10.263, Level: 67
    Level completed: 54%, Points required for next Level: 187
    Overall activity: 0%

    Registriert seit
    Jun 2006
    Ort
    UK
    Beiträge
    2.326
    Points
    10.263
    Level
    67
    Downloads
    0
    Uploads
    0

    Standard

    Zitat Zitat von SG57
    Ive been using C++ for about 2 months now, ever since I got my PSP back. Its just a habit, and honestly, you dont even need to know C++ to use it's benefits. Simply rename your main.c to main.cpp, and include -lstdc++ to your makefile libs line and your set.
    In that case, you are (arguably) not using C++. You are just using C in .cpp files. Programming in C++ is more then just renaming source files and including libraries.

    MiG - As for my atrocious coding style, I'm sorry but I don't like typing more than I have to. Your method is ugly to me, as it has entire lines, all completely blank except for one {. Waste of space on that line, along iwth the closing bracket line, so it just adds to the file size of the source (despite how small the increment is, it still increases as there are extra newline chars, extra spaces, etc.). Please, keep your stereotypical coding style and comments to yourself. You code your stye, Ill code mine, let others decide for themselves there style (the way you came off, it soundedas if you were convincing others to code your style).

    P.S. Sorry if this comes off as an insult, but yours certainly did to me.
    In which case, I recommend you read the coding standards here on JSF's site:
    http://forums.qj.net/f-psp-developme...rds-97963.html

    Your coding style doesn't match any of the common standards out there:
    http://astyle.sourceforge.net/

    If is (argueably) fine if this is just for you but if you ever work in a team or company, then you are in trouble.
    Geändert von yaustar (03-02-2007 um 02:57 AM Uhr)

  19. #3019
    words are stones in my <3
    Points: 35.274, Level: 100
    Level completed: 0%, Points required for next Level: 0
    Overall activity: 0%

    Registriert seit
    Jul 2005
    Ort
    Spokane
    Beiträge
    5.008
    Points
    35.274
    Level
    100
    My Mood
    Lonely
    Downloads
    1
    Uploads
    0

    Standard

    One simple for loop doesn't show off one's entire coding style. I obviously wouldnt do a one-liner out of 2 lines of code in a for loop, as that gets to crowded. The most i go, is right there - 1 line. As for not using C++ - I couldve sworn Im using the bool data type, the std namespace and like in my snippet 'for(int i;;)'. I rarely uses classes, but Ill live.
    -= Double Post =-
    Ok, whoops.

    Change in weapons.

    There is an AK47, Desert Eagle, MP5, Sword and M4 Carbine, not UMP.

    So far, the AK47 and Sword are implemented, rendered and have all animations and whatnot done. The deagle is being worked on.
    Geändert von SG57 (03-02-2007 um 05:05 PM Uhr) Grund: Automerged Doublepost

    ...at what speed must I live.. to be able to see you again?...

    Projects

    You can support my Open World 3D RPG for PSP by voting for it here


  20. #3020
    QJ Gamer Silver
    Points: 10.263, Level: 67
    Level completed: 54%, Points required for next Level: 187
    Overall activity: 0%

    Registriert seit
    Jun 2006
    Ort
    UK
    Beiträge
    2.326
    Points
    10.263
    Level
    67
    Downloads
    0
    Uploads
    0

    Standard

    Zitat Zitat von SG57
    As for not using C++ - I couldve sworn Im using the bool data type, the std namespace and like in my snippet 'for(int i;;)'. I rarely uses classes, but Ill live.
    Yeah, that's not using C++ (at least in principle). You are still coding in C using a very small amount of what C++ actually offers and capable of. For example, look at smart pointers.

  21. #3021
    QJ Gamer Bronze
    Points: 9.316, Level: 64
    Level completed: 89%, Points required for next Level: 34
    Overall activity: 0%

    Registriert seit
    Sep 2006
    Ort
    Denmark
    Beiträge
    664
    Points
    9.316
    Level
    64
    Downloads
    0
    Uploads
    0

    Standard

    I just followed Access_Denied's Image turtorial, but i get an error when trying to compile it. Look at the attachment.

    Yes, i HAVE zlib and libpng installed.
    Geändert von gameo (01-01-2008 um 01:19 PM Uhr)
    My PSP Projects:
    ___________________
    None.

  22. #3022
    QJ Gamer Green
    Points: 5.795, Level: 49
    Level completed: 23%, Points required for next Level: 155
    Overall activity: 0%

    Registriert seit
    Sep 2006
    Ort
    Cape Town, South Africa
    Beiträge
    714
    Points
    5.795
    Level
    49
    Downloads
    0
    Uploads
    0

    Standard

    Zitat Zitat von gameo
    I just followed Access_Denied's Image turtorial, but i get an error when trying to compile it. Look at the attachment.

    Yes, i HAVE zlib and libpng installed.
    Did you download graphics.c and graphics.h and place them in the same folder as main.c?

    Also, intiGraphics should be initGraphics.

    EDIT: It looks like you left out a " on line 26, along with a lot of other mistakes (some might just be there because of earlier syntax errors). It would be helpful if you posted your code.

  23. #3023
    QJ Gamer Bronze
    Points: 9.316, Level: 64
    Level completed: 89%, Points required for next Level: 34
    Overall activity: 0%

    Registriert seit
    Sep 2006
    Ort
    Denmark
    Beiträge
    664
    Points
    9.316
    Level
    64
    Downloads
    0
    Uploads
    0

    Standard

    2 sec.

    /*
    * Simple Image Example
    * Create by Access_Denied
    *January 22, 2006
    */

    #include <pspkernel.h>
    #include <pspdebug.h>
    #include <pspctrl.h>
    #include <stdio.h>
    #include <pspcallbacks.h>
    #include "graphics.h"
    #define prints printTextScreen

    PSP_MODULE_INFO("Image Example",0,1,1);

    int x = 100,y = 100;

    int main() {
    intiGraphics();
    SceCtrlData pad;
    SetupCallbacks();

    Image* background;
    background = loadImage("Grass.png");
    Image* player = loadImage("Player.png');

    for(;;) {
    sceCtrlReadBufferPositive (&pad, 1);

    blitAlphaImageToScreen(0, 0,480,272,background,0,0) ;
    blitAlphaImageToScreen(0, 0,32,32,player,x,y);

    if ((pad.Buttons & PSP_CTRL_UP) && (y > 3)) {
    y = y - 4;
    }
    if ((pad.Buttons & PSP_CTRL_DOWN) && (y < 237)) {
    y = y + 4;
    }
    if((pad.Buttons & PSP_CTRL_RIGHT) && (x < 445)) }
    x = x + 4;
    }
    if((pad.Buttons & PSP_CTRL_LEFT) && (x > 3)
    x = x - 4;
    }

    sceDisplayWaitVblankStart ()
    flipScreen();
    }
    sceKernelSleepThread();
    return 0;
    }


    NOTE: I have corrected the intiGraphics to InitGraphics.
    My PSP Projects:
    ___________________
    None.

  24. #3024
    Mushroom Man
    Points: 7.283, Level: 56
    Level completed: 67%, Points required for next Level: 67
    Overall activity: 0%

    Registriert seit
    Sep 2005
    Ort
    UK
    Beiträge
    318
    Points
    7.283
    Level
    56
    Downloads
    0
    Uploads
    0

    Standard

    From the screenshot it seems as if you are missing graphics.h and maybe graphics.c. You can download them both from Yeldarbs tutorial. Simply grab them and place them in the same directory as your main.c file.

    Link to graphics.c/graphics.h/framebuffer.c/framebuffer.h:

    http://www.psp-programming.com/tutorials/c/lesson04.zip

    You may also need to change your makefile to include the following objects:

    graphics.o & framebuffer.o

    i.e.

    OBJS = main.o graphics.o framebuffer.o

    EDIT

    Also:

    Image* player = loadImage("Player.png');

    should be

    Image* player = loadImage("Player.png");
    Geändert von Psilocybeing (03-03-2007 um 03:07 AM Uhr) Grund: Automerged Doublepost

  25. #3025
    QJ Gamer Bronze
    Points: 9.316, Level: 64
    Level completed: 89%, Points required for next Level: 34
    Overall activity: 0%

    Registriert seit
    Sep 2006
    Ort
    Denmark
    Beiträge
    664
    Points
    9.316
    Level
    64
    Downloads
    0
    Uploads
    0

    Standard

    I'll try it out. Thanks.
    My PSP Projects:
    ___________________
    None.

  26. #3026
    Points: 3.427, Level: 36
    Level completed: 52%, Points required for next Level: 73
    Overall activity: 0%

    Registriert seit
    Mar 2007
    Ort
    France
    Beiträge
    6
    Points
    3.427
    Level
    36
    Downloads
    0
    Uploads
    0

    Exclamation Accessing fonts within pgf file format ?

    Hi all,

    Does someone is aware of how to extract fonts from pgf file format ?

    Trying to get header info and if it is compressed (probably not) ... But cannot find a way to achieve my goal...

    The things I know : Original Latin font is FFT NewRodin Pro Latin (from fontworks.com japan fonts, probably sold out for only sony usage for legal reasons) in subset of files ltn0.pgf to ... ltnXx.pgf for normal, bold, italic, etc...

    FFT means probably Macromedia Flash Font format to be used there.

    This bit of code can do the job to convert TTF to FFT... :
    Spoiler for Java Source Code for TTF2FFT (easy to port to C++) - Subject to license usage from Laszlo inc.:


    Code:
    /******************************************************************************
     * TTF2FFT.java
     * ****************************************************************************/
    
    //LZ_JAVA_COPYRIGHT_BEGIN
    /* *****************************************************************************
    * Copyright (c) 2001-2004 Laszlo Systems, Inc.
    * All Rights Reserved.
    *
    * This software is the proprietary information of Laszlo Systems, Inc.
    * Use is subject to license terms.
    *
    * ****************************************************************************/
    //LZ_JAVA_COPYRIGHT_END
    
    
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.FileNotFoundException;
    import java.io.File;
    import java.awt.geom.Rectangle2D;
    import java.awt.Rectangle;
    
    // Apache Batik TrueType Font Parser
    import org.apache.batik.svggen.font.*;
    import org.apache.batik.svggen.font.table.*;
    
    class Util {
      private static final int[] BITS_LENGTH = {
    //  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
        0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4
      };
      public static int getMinBitsU(int v) {
        int n = 0;
        if( (v & ~0xffff) != 0 ) {
          n+=16; v >>>= 16;
        }
        if( (v & ~0x00ff) != 0 ) {
          n+= 8; v >>>=  8;
        }
        if( (v & ~0x000f) != 0 ) {
          n+= 4; v >>>=  4;
        }
        // for( ; v != 0; n++ ) v >>>= 1;
        n += BITS_LENGTH[v];
        return n;
      }
      public static int getMinBitsS(int v) {
        if (v < 0) v = -v;
        return getMinBitsU(v)+1;
      }
      public static int getMax( int a, int b ) {
        if( a < 0 ) a = -a;
        if( b < 0 ) b = -b;
        if( a >= b ) return a;
        return b;
      }
      public static int getMax( int a, int b, int c ) {
        if( a < 0 ) a = -a;
        if( b < 0 ) b = -b;
        if( c < 0 ) c = -c;
        if( a >= b && a >= c ) return a;
        if( b >= a && b >= c ) return b;
        return c;
      }
      public static int getMax( int a, int b, int c, int d ) {
        if( a < 0 ) a = -a;
        if( b < 0 ) b = -b;
        if( c < 0 ) c = -c;
        if( d < 0 ) d = -d;
    
        if( a > b ) {
          if( a > c ) {
            if( a > d ) {
              return a;
            } else {
              return d;
            }
          } else {
            if( c > d ) {
              return c;
            } else {
              return d;
            }
          }
        } else {
          if( b > c ) {
            if( b > d ) {
              return b;
            } else {
              return d;
            }
          } else {
            if( c > d ) {
              return c;
            } else {
              return d;
            }
          }
        }
      }
    }
    
    abstract class Fla****em {
      public abstract void write(FlashOutput fob);
    }
    
    class FlashBuffer {
    
      // bit buffer and position
      private int bitBuf;
      private int bitPos;
    
      private byte buf[];
    
      // current position in the buffer for reading and writing
      private int pos;
    
      // size of the buffer
      private int size;
    
      public FlashBuffer( int capacity ) {
        this( new byte[capacity], 0, 0 );
      }
    
      public FlashBuffer( byte[] buf, int pos, int size ) {
        init( buf, pos, size );
      }
    
      public void init( byte[] buf, int pos, int size ) {
        this.buf = buf;
        this.pos = pos;
        this.size = size;
        this.bitBuf = 0;
        this.bitPos = 0;
      }
    
      public final void ensureCapacity( int cap ) {
        if( cap > buf.length ) {
          int max = buf.length*2;
          if( cap > max ) max = cap+16;
          if( max < 4096 ) max = 4096;
          byte[] newBuf = new byte[max];
          System.arraycopy(buf, 0, newBuf, 0, buf.length);
          buf = newBuf;
        }
      }
    
      public final int getPos() {
        return pos;
      }
    
      public final int getSize() {
        return size;
      }
    
      public final void setPos( int pos ) {
        this.pos = pos;
        if( pos > size ) size = pos;
      }
    
      public final void incPos() {
        if( ++pos > size ) size = pos;
      }
    
      public final void skip( int inc ) {
        setPos( pos + inc );
      }
    
      public final byte[] getBuf() {
        return buf;
      }
    
      public final void writeWordAt( int b, int pos ) {
        buf[pos] = (byte) b;
        buf[pos+1] = (byte) (b>>8);
      }
    
      public final void writeDWordAt( int b, int pos ) {
        buf[pos] = (byte) b;
        buf[pos+1] = (byte) (b>>8);
        buf[pos+2] = (byte) (b>>16);
        buf[pos+3] = (byte) (b>>24);
      }
    
      public final void writeByte( int b ) {
        ensureCapacity( pos+1 );
        buf[pos] = (byte) b;
        incPos();
      }
    
      public final void writeWord( int b ) {
        ensureCapacity( pos+2 );
        buf[pos] = (byte) b;
        buf[pos+1] = (byte) (b>>8);
        setPos( pos+2 );
      }
    
      public final void writeDWord( int b ) {
        ensureCapacity( pos+4 );
        buf[pos] = (byte) b;
        buf[pos+1] = (byte) (b>>8);
        buf[pos+2] = (byte) (b>>16);
        buf[pos+3] = (byte) (b>>24);
        setPos( pos+4 );
      }
    
      public final void writeFOB( FlashBuffer fob ) {
        int len = fob.getSize();
        ensureCapacity( pos+len );
        System.arraycopy(fob.getBuf(), 0, buf, pos, len);
        setPos( pos+len );
      }
    
      public final void writeStringL( String s ) {
        byte chars[];
        try {
          // Macromedia claims to use ISO8859-1, but appears to use Cp1252
          chars = s.getBytes("Cp1252");
        } catch (Exception e) {
          System.out.println("exception in writeStringL");
          chars = s.getBytes();
        }
        ensureCapacity( pos+chars.length+1 );
        buf[pos++] = (byte) chars.length;
        for( int i=0; i<chars.length; i++ ) {
          buf[pos++] = chars[i];
        }
        setPos( pos );  // to update size
      }
    
      public final void writeLongTagAt( int tagCode, int tagSize, int pos ) {
        writeWordAt( (tagCode<<6) | 0x3f, pos );
        writeDWordAt( tagSize, pos+2 );
      }
    
      public final void writeBit( int b ) {
        writeBits( b, 1 );
      }
    
      public final void writeBits(int v, int len) {
        ensureCapacity( pos+4 );
        for(;;) {
          v = v & ((1<<len)-1);
          int l = 8-bitPos;
          int s = l-len;
          if( s >= 0 ) {
            bitBuf = (bitBuf<<len) | v;
            bitPos += len;
            return;
          } else {
            s = -s;
            int bb = (bitBuf<<l) | (v>>>s);
            buf[pos] = (byte)bb;
            incPos();
            len = s;
            bitBuf = 0;
            bitPos = 0;
          }
        }
      }
    
      public final void flushBits() {
        if( bitPos != 0 ) {
          int bb = bitBuf << (8-bitPos);
          writeByte( bb );
        }
        bitBuf = 0;
        bitPos = 0;
      }
    
      public final void initBits() {
        bitBuf = 0;
        bitPos = 0;
      }
    
      public final int getBits( int n ) {
        // get n bits from the stream.
        int v = 0;
    
        for (;;) {
          int s = n - bitPos;
          if( s > 0 ) {
            // Consume the entire buffer
            v |= bitBuf << s;
            n -= bitPos;
    
            // get the next buffer
            bitBuf = getUByte();
            bitPos = 8;
          } else {
            // Consume a portion of the buffer
            s = -s;
            v |= bitBuf >> s;
            bitPos = s;
            bitBuf &= (1<<s)-1;   // mask off the consumed bits
            return v;
          }
        }
      }
    
      public final int getUByte() {
        return buf[pos++] & 0xff;
      }
    
      public InputStream getInputStream() {
        return new FlashBufferInputStream();
      }
    
      public class FlashBufferInputStream extends InputStream {
    
        private int curPos = 0;
    
        public int read() throws IOException {
          if( curPos >= size ) return -1;
          return buf[curPos++] & 0xff;
        }
    
      }
    
      public void write( Rectangle2D r ) {
        initBits();
    
        int xmin = (int) r.getMinX();
        int xmax = (int) r.getMaxX();
        int ymin = (int) r.getMinY();
        int ymax = (int) r.getMaxY();
    
        int nBits = Util.getMinBitsS(Util.getMax(xmin,xmax,ymin,ymax) );
        writeBits( nBits, 5 );
        writeBits( xmin, nBits );
        writeBits( xmax, nBits );
        writeBits( ymin, nBits );
        writeBits( ymax, nBits );
        flushBits();
      }
    }
    
    final class CurvedEdgeRecord extends Fla****em {
    
      private int controlDeltaX;
      private int controlDeltaY;
      private int anchorDeltaX;
      private int anchorDeltaY;
    
      public CurvedEdgeRecord( int controlDeltaX, int controlDeltaY, int anchorDeltaX, int anchorDeltaY ) {
        setControlDeltaX(controlDeltaX);
        setControlDeltaY(controlDeltaY);
        setAnchorDeltaX(anchorDeltaX);
        setAnchorDeltaY(anchorDeltaY);
      }
    
      public void setControlDeltaX( int controlDeltaX ) {
        this.controlDeltaX = controlDeltaX;
      }
    
      public void setControlDeltaY( int controlDeltaY ) {
        this.controlDeltaY = controlDeltaY;
      }
    
      public void setAnchorDeltaX( int anchorDeltaX ) {
        this.anchorDeltaX = anchorDeltaX;
      }
    
      public void setAnchorDeltaY( int anchorDeltaY ) {
        this.anchorDeltaY = anchorDeltaY;
      }
    
      public void write( FlashOutput fob ) {
        fob.writeBits(0x2, 2);
        int nBits = Util.getMinBitsS( Util.getMax(controlDeltaX, controlDeltaY, anchorDeltaX, anchorDeltaY) );
        if( nBits < 3 ) nBits = 3;
        fob.writeBits(nBits-2, 4);
        fob.writeBits(controlDeltaX, nBits);
        fob.writeBits(controlDeltaY, nBits);
        fob.writeBits(anchorDeltaX, nBits);
        fob.writeBits(anchorDeltaY, nBits);
      }
    }
    
    class FlashOutput  extends FlashBuffer  {
    
      public FlashOutput( int size ) {
        super(size);
      }
    
    }
    
    class IVVector implements Cloneable {
    
      protected Object[] objects;
      protected int top;
      protected static final int INIT_CAPACITY = 20;
    
      public IVVector() {
        this(INIT_CAPACITY);
      }
    
      public IVVector(int capacity) {
        init(capacity);
      }
    
      public final void ensureCapacity( int cap ) {
        if(cap >= objects.length ) {
          Object[] newObjs = new Object[cap*2];
          System.arraycopy(objects, 0, newObjs, 0, objects.length);
          objects = newObjs;
        }
      }
    
      public final void addElement( Object o ) {
        ensureCapacity( top );
        objects[top++] = o;
      }
    
      public final Object elementAt(int index) throws Exception {
        if( index >= top ) {
          throw new Exception("elementAt" + index + " >= " + top );
        }
        return objects[index];
      }
    
      public final int size() {
        return top;
      }
    
      protected final void init(int capacity) {
        init( capacity, 0 );
      }
    
      protected final void init(int capacity, int top) {
        this.top = top;
        if( capacity <= 0 ) capacity = 1;
        objects = new Object[capacity];
      }
    
    }
    
    final class StyleChangeRecord extends Fla****em {
    
      public static final int NEW_STYLES = 0x10;
      public static final int LINESTYLE  = 0x08;
      public static final int FILLSTYLE1 = 0x04;
      public static final int FILLSTYLE0 = 0x02;
      public static final int MOVETO   = 0x01;
    
      private int flags;
      private int deltaX;
      private int deltaY;
      private int fillStyle0;
      private int fillStyle1;
      private int lineStyle;
    
      public void setFlags( int flags ) {
        this.flags = flags;
      }
    
      public void addFlags( int flags ) {
        this.flags |= flags;
      }
    
      public void setDeltaX( int deltaX ) {
        this.deltaX = deltaX;
      }
    
      public void setDeltaY( int deltaY ) {
        this.deltaY = deltaY;
      }
    
      public void setFillStyle1( int fillStyle1 ) {
        this.fillStyle1 = fillStyle1;
      }
    
      public void setLineStyle( int lineStyle ) {
        this.lineStyle = lineStyle;
      }
    
      public void write(FlashOutput fob) {
        write(fob, 0, 0);
      }
    
      public void write( FlashOutput fob, int nFillBits, int nLineBits ) {
        fob.writeBits(flags, 6);
        if( (flags&MOVETO) != 0 ) {
          int nBits = Util.getMinBitsS( Util.getMax(deltaX, deltaY) );
          fob.writeBits(nBits, 5);
          fob.writeBits(deltaX, nBits);
          fob.writeBits(deltaY, nBits);
        }
        if( (flags&FILLSTYLE0) != 0 ) {
          fob.writeBits(fillStyle0, nFillBits);
        }
        if( (flags&FILLSTYLE1) != 0 ) {
          fob.writeBits(fillStyle1, nFillBits);
        }
        if( (flags&LINESTYLE) != 0 ) {
          fob.writeBits(lineStyle, nLineBits);
        }
      }
    
    }
    
    
    final class FixedTag  {
    
      private int code;
    
      public FixedTag( int code ) {
        this.code = code;
      }
    
      public void write(FlashOutput fob) {
        fob.writeWord(code << 6);
      }
    }
    
    final class StrightEdgeRecord extends Fla****em {
      public static final int GENERAL_LINE = 0;
      public static final int VERT_LINE  = 1;
      public static final int HORIZ_LINE   = 2;
    
      private int type;     // type of this record
      private int deltaX;     // delta X
      private int deltaY;     // delta Y
    
      public void setType(int type) {
        this.type = type;
      }
    
      public void setDeltaX( int deltaX ) {
        this.deltaX = deltaX;
      }
    
      public void setDeltaY( int deltaY ) {
        this.deltaY = deltaY;
      }
    
      public static StrightEdgeRecord newLine( int deltaX, int deltaY ) {
        StrightEdgeRecord sr = new StrightEdgeRecord();
        sr.setType( GENERAL_LINE );
        sr.setDeltaX( deltaX );
        sr.setDeltaY( deltaY );
        return sr;
      }
    
      public static StrightEdgeRecord newHLine( int deltaX ) {
        StrightEdgeRecord sr = new StrightEdgeRecord();
        sr.setType( HORIZ_LINE );
        sr.setDeltaX( deltaX );
        return sr;
      }
    
      public static StrightEdgeRecord newVLine( int deltaY ) {
        StrightEdgeRecord sr = new StrightEdgeRecord();
        sr.setType( VERT_LINE );
        sr.setDeltaY( deltaY );
        return sr;
      }
    
      public void write( FlashOutput fob ) {
        fob.writeBits(0x3, 2);
        switch( type ) {
          case GENERAL_LINE: {
            int nBits = Util.getMinBitsS( Util.getMax(deltaX, deltaY) );
            if( nBits < 3 ) nBits = 3;
            fob.writeBits(nBits-2, 4);
            fob.writeBit(1);
            fob.writeBits(deltaX, nBits);
            fob.writeBits(deltaY, nBits);
            break;
          }
          case VERT_LINE: {
            int nBits = Util.getMinBitsS( deltaY );
            if( nBits < 3 ) nBits = 3;
            fob.writeBits(nBits-2, 4);
            fob.writeBit(0);
            fob.writeBit(1);
            fob.writeBits(deltaY, nBits);
            break;
          }
          case HORIZ_LINE: {
            int nBits = Util.getMinBitsS( deltaX );
            if( nBits < 3 ) nBits = 3;
            fob.writeBits(nBits-2, 4);
            fob.writeBit(0);
            fob.writeBit(0);
            fob.writeBits(deltaX, nBits);
            break;
          }
        }
      }
    }
    class ShapeRecords  {
    
      private IVVector shape_records;
    
      private int last_x = Integer.MAX_VALUE;
      private int last_y = Integer.MAX_VALUE;
    
      public ShapeRecords() {
        this(new IVVector());
      }
    
      public ShapeRecords(IVVector shape_records) {
        this.shape_records = shape_records;
      }
    
      public IVVector getShapeRecords() {
        return shape_records;
      }
    
      public void drawCurveTo( int cx, int cy, int ax, int ay ) {
        shape_records.addElement( new CurvedEdgeRecord(cx-last_x, cy-last_y, ax-cx, ay-cy) );
        last_x = ax;
        last_y = ay;
      }
    
      public void drawLineTo( int x, int y ) {
        int deltaX = x-last_x;
        int deltaY = y-last_y;
        if( deltaX == 0 ) {
          if( deltaY == 0 ) return;
          shape_records.addElement(StrightEdgeRecord.newVLine(deltaY));
        } else if( deltaY == 0 ) {
          shape_records.addElement( StrightEdgeRecord.newHLine(deltaX) );
        } else {
          shape_records.addElement( StrightEdgeRecord.newLine(deltaX,deltaY) );
        }
        last_x = x;
        last_y = y;
      }
    
      public void movePenTo( int x, int y ) {
        try {
        if( last_x != x || last_y != y ) {
          StyleChangeRecord sc = getStyleChange();
          sc.addFlags( StyleChangeRecord.MOVETO );
          sc.setDeltaX(x);
          sc.setDeltaY(y);
          last_x = x;
          last_y = y;
        }
        }
        catch (Exception e) {
        e.printStackTrace();
        }
      }
    
      public StyleChangeRecord addStyleChangeRecord( StyleChangeRecord scr ) {
        shape_records.addElement(scr);
        return scr;
      }
    
      public StyleChangeRecord addStyleChangeRecord() {
        StyleChangeRecord scr = new StyleChangeRecord();
        shape_records.addElement(scr);
        return scr;
      }
    
      protected StyleChangeRecord getStyleChange() throws Exception {
        if( shape_records.size() > 0 ) {
          Fla****em item = (Fla****em) shape_records.elementAt( shape_records.size()-1 );
          if( item instanceof StyleChangeRecord ) return (StyleChangeRecord) item;
        }
        return addStyleChangeRecord();
      }
    
      public void write(FlashOutput fob, int nFillBits, int nLineBits) throws Exception {
        fob.initBits();
        for( int i=0; i<shape_records.size(); i++ ) {
          Fla****em item = (Fla****em) shape_records.elementAt(i);
          if( item instanceof StyleChangeRecord ) {
            StyleChangeRecord scr = (StyleChangeRecord) item;
            scr.write(fob, nFillBits, nLineBits);
          } else {
            item.write(fob);
          }
        }
      }
    }
    
    final class Shape {
    
      private StyleBlock style_block;
      private Rectangle2D bounds;   // bounding box of this shape
    
      public ShapeRecords getShapeRecords() {
        return style_block.shapeRecords;
      }
    
    
      public void newStyleBlock() {
        StyleBlock sb = new StyleBlock();
        sb.prev = style_block;
    
        // check whether last style block has stylechange with flag NEW_STYLES
        // add this record if there is no such stylechange
        if( style_block != null ) {
          IVVector shape_records = style_block.shapeRecords.getShapeRecords();
          if( shape_records.size() > 0 ) {
            try {
            Object o = shape_records.elementAt(shape_records.size()-1);
            if( o instanceof StyleChangeRecord ) {
              StyleChangeRecord sr = (StyleChangeRecord) o;
              sr.addFlags(StyleChangeRecord.NEW_STYLES);
            } else {
              StyleChangeRecord sr = new StyleChangeRecord();
              sr.addFlags(StyleChangeRecord.NEW_STYLES);
              shape_records.addElement(sr);
            }
            }
            catch (Exception e) {
            e.printStackTrace(); 
            }
          }
        }
    
        style_block = sb;
      }
    
      private static class StyleBlock {
    
        StyleBlock prev;
    
        ShapeRecords shapeRecords;    // collection of shape records
    
        StyleBlock() {
          this.shapeRecords = new ShapeRecords();
        }
    
      }
      
    
      public void setBounds( Rectangle2D bounds ) {
        this.bounds = bounds;
      }
    
      public void drawCurveTo( int cx, int cy, int ax, int ay ) {
        getShapeRecords().drawCurveTo(cx, cy, ax, ay);
      }
    
      public void drawLineTo( int x, int y ) {
        getShapeRecords().drawLineTo(x, y);
      }
    
      public void movePenTo( int x, int y ) {
        getShapeRecords().movePenTo(x, y);
      }
    
    }
    
    class TTFGlyph {
    
      private Point[] points;
    
      public TTFGlyph(GlyphDescription gd) {
        int endPtIndex = 0;
        points = new Point[gd.getPointCount()];
        for (int i = 0; i < gd.getPointCount(); i++) {
          boolean endPt = gd.getEndPtOfContours(endPtIndex) == i;
          if (endPt) {
            endPtIndex++;
          }
          points[i] = new Point(
              gd.getXCoordinate(i),
              gd.getYCoordinate(i),
              (gd.getFlags(i) & GlyfDescript.onCurve) != 0,
              endPt);
        }
      }
    
      public Point getPoint(int i) {
        return points[i];
      }
    
      public int getNumPoints() {
        return points.length;
      }
      
      public void scale(double factor) {
        for (int i = 0; i < points.length; i++) {
          points[i].x *= factor;
          points[i].y *= -factor;
        }
      }
    }
    
    public class TTF2FFT {
      private static final int HAS_LAYOUT   = 0x0080;
      private static final int ITALIC       = 0x0002;
      private static final int BOLD         = 0x0001;
      private static final int ANSI         = 0x0010;
      private static final int UNICODE      = 0x0020;
      private static final int WIDE_CODES   = 0x0004;
      private static final int WIDE_OFFSETS = 0x0008;
    
      private static final int TAG_END       = 0;
    
      private static final int TAG_DEFINEFONT2      = 48;
    
      private static final FixedTag END_TAG = new FixedTag(TAG_END);
    
      public static void main(String argv[]) {
        try {
          File ttf_file = new File (argv[0]);
    
          OutputStream fft_out_stream = new FileOutputStream(argv[1]);
          InputStream  fft_in_stream  = TTF2FFT.convert(ttf_file);
    
          int size=1024;
    
          byte[] buffer = new byte[size];
          int b = 0;
          while ((b = fft_in_stream.read(buffer)) > 0) {
            fft_out_stream.write(buffer, 0, b);
          }
    
          fft_out_stream.flush();
          fft_out_stream.close();
        }
        catch (Exception e) {
          e.printStackTrace();
        }
      }
    
      private final static int LFC_TMARK = 160;
    
      /** Units per EmSquare for FFTs */
      private static final int FFT_UnitsPerEm = 1024;
    
      public static InputStream convert(File input) 
        throws Exception, FileNotFoundException {
    
        String path = input.getPath();
    
        if (!input.exists()) {
          throw new FileNotFoundException(path);
        }
    
        if (!input.canRead()) {
          throw new FileNotFoundException("Can't read: " + path);
        }
    
        org.apache.batik.svggen.font.Font ttf;
        ttf = org.apache.batik.svggen.font.Font.create(input.getPath());
    
        NameTable nameTable = ttf.getNameTable();
        String  fontName = "";
        if (nameTable == null) {
          fontName = input.getName();
          int index = fontName.indexOf(".");
          if (index > 0) {
            fontName = fontName.substring(0, index);
          }
        } else {
          fontName = nameTable.getRecord((short)1); 
        }
        HeadTable headTable = ttf.getHeadTable();
        HmtxTable hmtxTable = ttf.getHmtxTable();
    
        if (headTable == null) {
          // Bitmap fonts aren't required to have the head table.
          // We don't support them yet. XXX
          throw new Exception(path + " missing ttf head table; this ttf font not supported");
        }
    
        if (hmtxTable == null) {
          throw new Exception(path + " missing ttf hmtx (horiz. metrics) table; this ttf font not supported");
        }
    
        int   flags  = 0;
    
        // Is font bold, italic, or bold-italic?
        int   macStyle = headTable.getMacStyle();
        boolean isBold   = (macStyle & 0x1) != 0;
        boolean isItalic = (macStyle & 0x2) != 0;
    
        boolean isUnicode = false;
                         
                         
        if (isBold)
          flags |= BOLD;
        if (isItalic)
          flags |= ITALIC;
    
        // We have font metric info for the ttf
        flags |= HAS_LAYOUT;
    
        final int maxCodes = 0xffff;
        int     numCodes = 0;
    
        int [] codeTable  = new int[maxCodes];
        int [] indexTable = new int[maxCodes];
        int  maxCode  = 0;
    
        // Add Code 0 (not sure why this is needed.  Probably some lfc reason
        codeTable[0] = 0;
        indexTable[0] = 0;
        numCodes = 1;
    
        // 3 tries
        final int NUM_TRIES = 3;
        short [] cmapPlats = {
          Table.platformMicrosoft,
          Table.platformMacintosh,
          Table.platformMicrosoft,
        };
    
        short [] cmapEncodes = {
          Table.encodingUGL,
          Table.encodingRoman,
          Table.encodingUndefined,
        };
    
        boolean [] cmapIsUnicode = {
          true,
          false,
          false,
        };
    
        int tries = 0;
    
        CmapFormat cmapFmt = null;
        boolean hasTmark   = false;
        int spaceIndex     = 0;
    
        for (int t = 0; t < NUM_TRIES; t++) {
    
          cmapFmt = ttf.getCmapTable().getCmapFormat(cmapPlats[t], cmapEncodes[t]);
          // Find char codes
          if (cmapFmt != null) {
            for (int ch = 0; ch < 0xffff; ch++) {
              int index = cmapFmt.mapCharCode(ch);
    
              if (ch == 32) {
                spaceIndex = index;
              }
        
              if (index != 0) {
                if (ch == LFC_TMARK) {
                  hasTmark = true;
                }
                codeTable[numCodes] = ch;
                indexTable[numCodes] = index;
                numCodes++;
                if (ch > maxCode) {
                  maxCode = ch;
                }
              }
            }
          }
          if (numCodes > 1) {
            break;
          }
          isUnicode = cmapIsUnicode[t];
        }
    
        if (cmapFmt == null) {
          throw new Exception("Can't find a cmap table in " + path);
        }
    
        if (!hasTmark) {
          if (LFC_TMARK > maxCode) {
            maxCode = LFC_TMARK;
          }
    
          codeTable[numCodes] = LFC_TMARK;
          indexTable[numCodes] = spaceIndex;
          numCodes++;
        }
    
        if (isUnicode)
          flags |= UNICODE;
        else 
          flags |= ANSI;
      
        boolean useWideCodes = (maxCode > 255);
        if (useWideCodes)
          flags |= WIDE_CODES;
    
        GlyfTable glyfTable = (GlyfTable)ttf.getTable(
            org.apache.batik.svggen.font.table.Table.glyf);
    
        int        numGlyphs = numCodes;
        Shape []     shapeTable  = new Shape[numGlyphs];
        Rectangle2D []   boundsTable = new Rectangle2D[numGlyphs];
    
        int unitsPerEm = headTable.getUnitsPerEm();
        double factor = (double)FFT_UnitsPerEm / (double)unitsPerEm;
    
        // Get glyph shapes, and bounds.
        for (int i = 0; i < numGlyphs; i++) {
          int      index = indexTable[i];
          int      code  = codeTable[i];
          GlyfDescript glyf  = glyfTable.getDescription(index);
          TTFGlyph   glyph = null;
    
          if (glyf != null) {
            glyph = new TTFGlyph(glyf);
            glyph.scale(factor);
          } else {
          }
    
    
          Shape shape = new Shape();
          shape.newStyleBlock();
          convertGlyphToShape(glyph, shape);
          shapeTable[i] = shape;
          
          int x, w, y, h;
    
          if (glyf != null) {
            x = (int)Math.round(glyf.getXMinimum() * factor);
            y = (int)Math.round(glyf.getYMaximum() * -factor);
            w = (int)Math.round((glyf.getXMaximum() - glyf.getXMinimum()) * factor);
            h = (int)Math.round((glyf.getYMaximum() - glyf.getYMinimum()) * factor);
          } else {
            // Heuristic that hopefully works out ok for
            // missing glyfs.  First try space.  Then try index0
            glyf = glyfTable.getDescription(spaceIndex);
            if (glyf == null) {
              glyf = glyfTable.getDescription(0);
            }
            if (glyf != null) {
              w = (int)Math.round((glyf.getXMaximum() - glyf.getXMinimum()) * factor);
            } else {
              w = 0;
            }
            x = y = h = 0;
          }
          boundsTable[i] = new Rectangle(x, y, w, h);
          shape.setBounds(boundsTable[i]);
        }
    
        // Create a 40K buffer for generating the FFT
        FlashOutput buf = new FlashOutput( 40*1024 ); 
    
        // write header.
        final int TWIP = 20;
    
        buf.writeByte( 'F' );
        buf.writeByte( 'W' );
        buf.writeByte( 'S' );
        // write version
        buf.writeByte( 5 );
        // skip file size
        buf.skip(4);
        // write rect
        buf.write( new Rectangle(0, 0, 5*TWIP, 5*TWIP) );     
        // write frame rate
        buf.writeWord( 10 << 8 ); 
    
        // Frame count
        buf.writeWord(0);
    
        // Remember position
        int tagPos = buf.getPos();
    
        // Skip definefont2 tag header
        buf.skip(6);
    
        // Write font id
        buf.writeWord(1);
    
        // Skip flags
        int flagsPos = buf.getPos();
        buf.skip(2);
    
        // Write font name
        buf.writeStringL(fontName);
    
        // Write number of glyphs
        buf.writeWord(numGlyphs);
    
        int [] offsetTable = new int [numGlyphs]; 
    
        // Write out the converted shapes into a temporary buffer
        // And remember their offsets
        FlashOutput glyphBuf = new FlashOutput(20*1024);
        for( int i=0; i < numGlyphs; i++ ) {
    
          offsetTable[i] = glyphBuf.getPos();
    
          // 1 bit of line and fill
          glyphBuf.writeByte(0x11);
    
          ShapeRecords shapeRecords = shapeTable[i].getShapeRecords();
          shapeRecords.write(glyphBuf, 1, 1);
          // Write end of shape records
          glyphBuf.writeBits(0, 6);
          glyphBuf.flushBits();
        }
    
        // UseWideOffset if glyph buf + offset table + codeTable offset
        // is bigger than 16bit int
        boolean useWideOffsets = glyphBuf.getSize() + (numGlyphs+1)*2 > 0xffff;
    
        // Write offsets and codeTable offset
        if (useWideOffsets) {
          int offset = (numGlyphs+1)*4;
          flags |= WIDE_OFFSETS;
          for(int i = 0; i < numGlyphs; i++) {
            buf.writeDWord(offsetTable[i] + offset);
          }
          buf.writeDWord( glyphBuf.getSize() + offset );
        }
        else {
          int offset = (numGlyphs+1)*2;
          for(int i = 0; i < numGlyphs; i++) {
            buf.writeWord(offsetTable[i] + offset);
          }
          buf.writeWord( glyphBuf.getSize() + offset );
        }
    
        // Write shapes
        buf.writeFOB(glyphBuf);
    
        // Write out char code table. (glyph index to char code)
        for( int i=0; i<numCodes; i++ ) {
          if(useWideCodes) {
            buf.writeWord( codeTable[i] );
          } else {
            buf.writeByte( codeTable[i] );
          }
        }
    
        // Write ascent, descent, (external) leading
        int ascent = (int)Math.round((ttf.getAscent() * factor));
        int descent = (int)Math.round((ttf.getDescent() * -factor));
        int leading = ascent + descent - FFT_UnitsPerEm;
    
        buf.writeWord(ascent );
        buf.writeWord(descent);
        buf.writeWord(leading);
    
        // Write advance table 
        for( int i=0; i<numCodes; i++ )  {
          int index = indexTable[i];
          buf.writeWord((int)Math.round(hmtxTable.getAdvanceWidth(index) *factor));
        }
    
        // Write bounds table
        for( int i=0; i<numCodes; i++ ) {
          buf.write( boundsTable[i] );
        }
    
        // Write kerning tables 
        int nKern = 0;
    
        KernTable kernTable = (KernTable)ttf.getTable(Table.kern);
        // TODO: [2003-11-05 bloch] this should be passed in as an argument and taken
        // from the font definition in the LZX file
        boolean doKern = true;
    
        if (kernTable != null) {
          if (doKern) {
            KernSubtable kst = kernTable.getSubtable(0);
            nKern = kst.getKerningPairCount();
            int goodKern = nKern;
            for (int i = 0; i < nKern; i++) {
              if (kst.getKerningPair(i).getValue() == 0) {
                goodKern--;
              }
            }
            buf.writeWord(goodKern);
            for (int i = 0; i < nKern; i++) {
              KerningPair pair = kst.getKerningPair(i);
              if (pair.getValue() != 0) {
                if (useWideCodes) {
                  buf.writeWord( codeTable[pair.getLeft()] );
                  buf.writeWord( codeTable[pair.getRight()] );
                } else {
                  buf.writeByte( codeTable[pair.getLeft()] );
                  buf.writeByte( codeTable[pair.getRight()] ) ;
                }
                buf.writeWord( (int)Math.round(pair.getValue()*factor) );
              }
            }
          } else {
          }
        } else {
          buf.writeWord( 0 );
        }
    
        // Write the DEFINEFONT2 tag
        int x = buf.getPos() - tagPos - 6;
        buf.writeLongTagAt(TAG_DEFINEFONT2, x, tagPos);
        // Write the flags
        buf.writeWordAt(flags, flagsPos);
    
        // Write the END tag
        END_TAG.write(buf);
    
        // Write the file size back at the beginning.
        int filesize = buf.getSize();
        buf.writeDWordAt( filesize, 4 );
    
        return buf.getInputStream();
      }
    
      private static void convertGlyphToShape(TTFGlyph glyph, Shape shape) {
    
        if (glyph == null) {
          return;
        }
        int firstIndex = 0;
        int count = 0;
    
        // Add each contour to the shape.
        for (int i = 0; i < glyph.getNumPoints(); i++) {
          count++;
          if (glyph.getPoint(i).endOfContour) {
            addContourToShape(shape, glyph, firstIndex, count);
            firstIndex = i + 1;
            count = 0;
          }
        }
      }
    
      private static void addContourToShape(Shape shape, 
          TTFGlyph glyph, int startIndex, int count) {
    
        // If this is a single point on it's own, we can't do anything with it
        if (glyph.getPoint(startIndex).endOfContour) {
          return;
        }
    
        int offset = 0;
    
        while (offset < count) {
          Point p0  = glyph.getPoint(startIndex + offset%count);
          Point p1  = glyph.getPoint(startIndex + (offset+1)%count);
    
          if (offset == 0) {
            shape.movePenTo(p0.x, p0.y);
            if (startIndex == 0) {
              StyleChangeRecord scr = new StyleChangeRecord();
              scr.setFlags(StyleChangeRecord.FILLSTYLE1 | 
                     StyleChangeRecord.LINESTYLE);
              scr.setFillStyle1(1);
              scr.setLineStyle(0);
              shape.getShapeRecords().addStyleChangeRecord(scr);
            }
          }
    
          if (p0.onCurve) {
            if (p1.onCurve) {
              shape.drawLineTo(p1.x, p1.y);
              offset++;
            } else {
              Point p2;
              p2 = glyph.getPoint(startIndex + (offset+2)%count);
    
              if (p2.onCurve) {
                shape.drawCurveTo(p1.x, p1.y, p2.x, p2.y);
              } else {
                shape.drawCurveTo(p1.x, p1.y,
                      midValue(p1.x, p2.x), 
                      midValue(p1.y, p2.y));
              }
              offset+=2;
            } 
          } else {
            if (!p1.onCurve) {
              shape.drawCurveTo(p0.x, p0.y,
                        midValue(p0.x, p1.x),
                        midValue(p0.y, p1.y));
            } else {
              shape.drawCurveTo(p0.x, p0.y, p1.x, p1.y);
            }
            offset++;
          }
        }
      }
    
      private static int midValue(int a, int b) {
        return (a + b) / 2;
      }
    }

    N.B. : Replace "****" in code by "s h I t" cause this Code tags replace it !!!
    Now I need help to extract from pgf files...

    Finally, any help on this tricky affair from "Sony proprietary file format (They did it again !!!)" for fonts should be appreciated...
    Geändert von Olimatou (03-03-2007 um 12:22 PM Uhr)

  27. #3027
    Heroes never die
    Points: 8.645, Level: 62
    Level completed: 65%, Points required for next Level: 105
    Overall activity: 0%

    Registriert seit
    Aug 2006
    Ort
    ...........
    Beiträge
    1.323
    Points
    8.645
    Level
    62
    Downloads
    0
    Uploads
    0

    Standard

    #include <string.h>
    #include <stdio.h>

    extern char *Replacing(const char* replacing, char replacement, char* string) // [[[[--- Function Start
    {
    char *string_ptr;
    while((string_ptr=strpbrk (string,replacing))!=NULL )
    *string_ptr=replacement;
    return string;
    } // ]]]]--- Function End

    int main() { // Start of main program
    char *buffer; // Create a new pointer
    char test[] = "This is a testing string"; // create a string for replacing
    printf("Before:\n%c", *buffer); // print before string
    buffer = Replacing(" ", '.', test); // Using the Replacing function, the newly replaced string is now being converted into a buffer
    printf("\nAfter:\n%s", buffer); // Since the Replacing function converts a pointer to a buffer, the buffer can now be printed via printf
    sceKernelSleepThread(); // Pause this thread FOREVER
    return 0; // ISO Standards state that the main program has to return a value (0)
    } // end of main program

    printf("Before:\n%c", *buffer);
    doesnt that has to be ?
    printf("Before:\n%c", test);


    http://www.psp-programming.com/code/...=c:replacement

  28. #3028
    QJ Gamer Green
    Points: 5.795, Level: 49
    Level completed: 23%, Points required for next Level: 155
    Overall activity: 0%

    Registriert seit
    Sep 2006
    Ort
    Cape Town, South Africa
    Beiträge
    714
    Points
    5.795
    Level
    49
    Downloads
    0
    Uploads
    0

    Standard

    Code:
     if((pad.Buttons & PSP_CTRL_RIGHT) && (x < 445)) }
    x = x + 4;
    }
    if((pad.Buttons & PSP_CTRL_LEFT) && (x > 3)
    x = x - 4;
    }
    should be
    Code:
     if((pad.Buttons & PSP_CTRL_RIGHT) && (x < 445)) {
    x = x + 4;
    }
    if((pad.Buttons & PSP_CTRL_LEFT) && (x > 3)) {
    x = x - 4;
    }
    x = x + 4 can be shortened to x += 4.

  29. #3029
    words are stones in my <3
    Points: 35.274, Level: 100
    Level completed: 0%, Points required for next Level: 0
    Overall activity: 0%

    Registriert seit
    Jul 2005
    Ort
    Spokane
    Beiträge
    5.008
    Points
    35.274
    Level
    100
    My Mood
    Lonely
    Downloads
    1
    Uploads
    0

    Standard

    hallo - Yes. Somebody edited my page and changed it up. I still have the draft from that code, and this is it:
    Code:
    #include <string.h>
    #include <stdio.h>
    
    extern char *Replacing(const char* replacing, char replacement, char* string) 
    {
      char *string_ptr;
      while((string_ptr=strpbrk(string,replacing))!=NULL    )
        *string_ptr=replacement;
      return string;
    }                                                                    
    
    int main() {      
      char *buffer;     
      char test[] = "This is a testing string";
      printf("Before:\n%s", test);    
      buffer = Replacing(" ", '.', test);  
      printf("\nAfter:\n%s", buffer);      
      sceKernelSleepThread();       
      return 0;                   
    }
    Note, your replacement wouldnt print out the before string, rather an @ sign since your specifying the test char array as if it were just a char. (%c, should be %s)

    The page is being fixed. Will only take a second.

    ...at what speed must I live.. to be able to see you again?...

    Projects

    You can support my Open World 3D RPG for PSP by voting for it here


  30. #3030
    Heroes never die
    Points: 8.645, Level: 62
    Level completed: 65%, Points required for next Level: 105
    Overall activity: 0%

    Registriert seit
    Aug 2006
    Ort
    ...........
    Beiträge
    1.323
    Points
    8.645
    Level
    62
    Downloads
    0
    Uploads
    0

    Standard

    yeah your pm box was full so i posted it here , dindt mention about the %c
    => char variabel , %s char variabel[] or char *variabel


 

Tags for this Thread

Forumregeln

  • Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
  • Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
  • Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
  • Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
  •  





Alle Zeitangaben in WEZ -8. Es ist jetzt 09:15 PM Uhr.

Use of this Web site constitutes acceptance of the TERMS & CONDITIONS and PRIVACY POLICY
Copyright © , Caputo Media, LLC. All Rights Reserved. Cluster .