Autor Thema: Größe der Inventory-Items ändern?  (Gelesen 3580 mal)

Mister L

  • Boss der T.I.A.
  • Globaler Moderator
  • Ehrwürdiger Tentakel
  • *****
  • Beiträge: 3113
  • Geschlecht: Männlich
  • "R.I.P. Clever & Smart † 1958 -2023"
    • Profil anzeigen
    • Maniac Mansion - Night of the Meteor
Größe der Inventory-Items ändern?
« am: 21. Oktober 2008, 17:07:01 »
Wie kann man denn Größe der Inventory-Items ändern?
Ich habe das im Main-Gui versucht und Item Width & Height geändert, aber das scheint nichts zu bringen.  ???

Was mach ich da verkehrt?

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Größe der Inventory-Items ändern?
« Antwort #1 am: 22. Oktober 2008, 02:54:16 »
Schau mal in game_start, da wird das nochmal neu gesetzt, glaube ich.

Mister L

  • Boss der T.I.A.
  • Globaler Moderator
  • Ehrwürdiger Tentakel
  • *****
  • Beiträge: 3113
  • Geschlecht: Männlich
  • "R.I.P. Clever & Smart † 1958 -2023"
    • Profil anzeigen
    • Maniac Mansion - Night of the Meteor
Re: Größe der Inventory-Items ändern?
« Antwort #2 am: 22. Oktober 2008, 11:43:58 »
Ahja, habs hinbekommen. Danke!  :)
Unsere Starterpacks kennen wohl nur den alten "SetInvDimensions"-Befehl.  8)

Was anderes:
Kann mir jemand sagen, warum das Durchschalten des Inventorys nicht mehr geht, wenn man das MainGui (1) unter 103 beim y-Wert setzt?!?

 ??? ??? ???

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Größe der Inventory-Items ändern?
« Antwort #3 am: 23. Oktober 2008, 00:45:52 »
Mann mann mann, das hat mich jetzt gut und gerne eine halbe Stunde gekostet :)
Auch das Verschieben nach rechts führt nämlich ab x=19 zu dem Fehler.
Wenigstens ist das ein super Beispiel dafür, welche bescheuerten Programmier-Angewohnheiten es zu vermeiden gilt (obwohl es in diesem Fall fast verzeihbar ist).

In der rep_ex fand ich dies hier:
  if (game.top_inv_item > 0)
  {
    // if inventory can scroll up
    SetButtonPic (MAINGUI, 9, 1, invUparrowONsprite);
    if (GetInvAt (180, 160) < 0) game.top_inv_item = game.top_inv_item - (game.num_inv_displayed / 2 ); //160,180 coords of the 1st inv. slot
  }
Wie man sieht, verwendet der Check absolute Koordinaten. Wenn man also stattdessen dieses benutzt:
    if (GetInvAt (gui[MAINGUI].X+gui[MAINGUI].Controls[11].X+2, gui[MAINGUI].Y+gui[MAINGUI].Controls[11].Y+2) < 0)
      game.top_inv_item = game.top_inv_item - (game.num_inv_displayed / 2 ); // coords of the 1st inv. slot
sollte es klappen.

Mister L

  • Boss der T.I.A.
  • Globaler Moderator
  • Ehrwürdiger Tentakel
  • *****
  • Beiträge: 3113
  • Geschlecht: Männlich
  • "R.I.P. Clever & Smart † 1958 -2023"
    • Profil anzeigen
    • Maniac Mansion - Night of the Meteor
Re: Größe der Inventory-Items ändern?
« Antwort #4 am: 23. Oktober 2008, 08:07:12 »
Hey, vielen Dank für die Mühe!  :)
Ich hoffe, ich kann das mal bei einem Projekt umsetzen!  8)

FrasierCrane

  • kleiner Tentakel
  • ***
  • Beiträge: 154
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Größe der Inventory-Items ändern?
« Antwort #5 am: 23. Oktober 2008, 17:16:39 »
Ich hoffe, ich kann das mal bei einem Projekt umsetzen!  8)

Wow, vielen Dank KhrisMUC, ich kann das wirklich für meine Episode brauchen, die halbe Stunde Arbeit war also nicht umsonst und wird von mir umgesetzt werden. Das ganze macht meine Episode erst wirklich spielbar.
Hab mich im GlobalScript selber schon ein bisserl damit herumgespielt habs aber ned zusammengebracht (q.e.e - quod erat exspectandum). Hat mich schon längere Zeit geärgert.
"Jazz is not dead - it just smells funny." (Frank Zappa)