Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - robbo007

Pages: 1 2 [3] 4 5 ... 8
31
SCI Syntax Help / Re: SCI0: RegionPath Wandering
« on: June 04, 2024, 12:01:13 PM »
also: try scummvm

Amazing..That's much better. The error is:

"setRegions is not a selector for addToPics"

hmm....So do all instances of a view need to be a feature and the setFeature: used? Or maybe loaded with RSView?


32
SCI Syntax Help / Re: SCI0: RegionPath Wandering
« on: June 02, 2024, 04:52:16 PM »
Knowing exactly which oops error this is would help somewhat. Other than that... sprinkle debug prints through your code?

Its the "You tried something that we didn't think of... " error which does not help :(

33
SCI Syntax Help / Re: SCI0: RegionPath Wandering
« on: June 02, 2024, 04:30:27 PM »
ok thanks. I found them.

I've setup my "water.sc" equivalent script (script 301) which includes the bare basics. I've added the set regions to my room script (room 28) but not sure where its failing. I'm getting the "opps error". Is there any way to debug this to find out exactly which part of the code is triggering it?

Script 28:
Code: [Select]
setRegions: 301  ;Testing water bikini script

Code: [Select]
;;; Sierra Script 1.0 - (do not remove this comment)
;**
;** Logics for room 301 - RegPath, RegionPath et al (aka water.sc)
;**
;** Leisure Suit Larry 4 - Never say Nontoonyt (AKA The Missing Floppies)
;**        Copyright 2024
;** by Robbo
;**
;** Last Update: May 30th, 2024
;**
(script# 301)
(include sci.sh)
(use Main)
(include sci.sh)
(include game.sh)
(use Controls)
(use Cycle)
(use Door)
(use Extra)
(use Feature)
(use Follow)
(use Game)
(use Gauge)
(use InitRooms)
(use Inv)
(use Rev)
(use Jump)
(use MenuBar)
(use Obj)
(use RegionPath)
(use DPath)
(use Avoid)
(use Motion)
;these were in the original script
;(use Sight)
;(use Interface)
;(use n802)
;(use n962)
;(use Actor)
;(use System)

(public
Water 0
bikini3Lady 1
bikini4Lady 2
)

(local
local0
[local1 113] = [32767 28 8 133 45 118 258 110 259 75 176 50 -32768]
)

(procedure (OneOf what things &tmp i)
(for ((= i 0)) (< i (- argc 1)) ((++ i))
(if (== what [things i])
(return (or what 1))
)
)
)

(instance Water of Rgn
(properties)

(method (newRoom newRoomNumber)
(if (not (= keep (OneOf newRoomNumber 26 27 28 29))) ; beach, beach1, beach2, Vivir sin Domir
(gGame setScript: 0)
)
(= initialized 0)
(super newRoom: newRoomNumber &rest)
)

(method (init)
(Load rsVIEW 994) ;Brunette Babe
(Load rsVIEW 993) ;Blonde Babe
(super init: &rest)
(closeUpView init:)
(if (not script)
(self setScript: beachWalkerScript)
)
(if (IsObject (script register:))
((script register:) init: setMotion: beachWalkerPath)
)
(if (not (gGame script:))
;(gGame setScript: musicScript)
)
)

(method (notify param1 param2 &tmp temp0)
(switch param1
(0
(= temp0 0)
(while (< temp0 (- argc 2))
((Clone param2)
x: [param2 (++ temp0)]
y: [param2 (++ temp0)]
loop: [param2 (++ temp0)]
init:
)
)
)
(1
(beachWalkerScript register:)
(return)
)
)
)

(method (handleEvent event)
(cond
((super handleEvent: event))


)
)
)

(instance closeUpView of View
(properties
y 85
x 265
loop 4
)

(method (init)
(super init:)
(self hide: setPri: 15)
)

(method (show param1)
(self view: param1 setLoop: 4)
(super show:)
)
)

(instance bikini3Lady of Act ; Brunette babe
(properties
view 994
)

(method (init)
(super init:)
(self
setAvoider: Avoid 1
ignoreHorizon:
setCycle: Walk
observeControl: 2048
)
)

(method (handleEvent event)
(cond
((super handleEvent: event))

)
)
)
(instance bikini4Lady of Act ;Blonde Babe
(properties
view 993
)

(method (init)
(super init:)
(self
setAvoider: Avoid 1
ignoreHorizon:
setCycle: Walk
observeControl: 2048
)
)

(method (handleEvent event)
(cond
((super handleEvent: event))

)
)
)

(instance beachWalkerPath of RegionPath
(properties
value 29
endType 0
theRegion 301 ;refers to script 301
)

(method (at param1)
(return [local1 param1])
)

(method (nextRoom)
(if
(and
(== (self at: (+ 2 value)) 28)
(== gRoomNumber 28) ; Beach2
(gCurRoom notify: 0)
)
(repeat
(-= value 2)
(breakif (== (self at: (+ 1 value)) 32767))
)
)
(super nextRoom: &rest)
)
)

(instance beachWalkerScript of Script
(properties)

(method (changeState newState &tmp temp0)
(switch (= state newState)
(0
(= temp0
(switch (Random 2 3)
(2 bikini3Lady)
(3 bikini4Lady)
)
)
(beachWalkerPath value: -1)
(if (IsObject register)
(register dispose:)
)
(if (== temp0 register)
(self init:)
else
((= register temp0) init: setMotion: beachWalkerPath self)
)
)
(1
(self init:)
)
)
)
)


34
SCI Syntax Help / Re: SCI0: RegionPath Wandering
« on: May 30, 2024, 07:19:31 AM »
According to the opening comments in the original REGPATH.SC, both the path points, the Actors walking along said path, and the actual implementation of RegionPath (that's beachWalkerPath and it only needs to provide an at method -- the rest is just Iceman specific), must be contained in the same module/script file. It even straight-up tells you to look at Iceman's WATER.SC as an example.

Ok thanks. I'm using the decompiled code from sluicebox no comments in it :( Are you looking at different source code? As I can't see REGPATH.SH etc..

35
SCI Syntax Help / SCI0: RegionPath Wandering
« on: May 30, 2024, 06:25:42 AM »
Hi guys,
I'm trying to get an actor to wander around from room to room. Sort of like what they did with the BikiniLadies in Codename: Iceman.

I've found in the Iceman source code this code but don't really understand what its doing all the time.

Water.sc
Code: [Select]
(method (init)
(Load rsVIEW 217)
(Load rsVIEW 216)
(Load rsVIEW 215)
(Load rsVIEW 214)
(Load rsVIEW 702)
(Load rsVIEW 202)
(Load rsVIEW 902)
(super init: &rest)
(gEgo viewer: EgoWaterViewer)
(closeUpView init:)
(if (not script)
(self setScript: beachWalkerScript)
)
(if (IsObject (script register:))
((script register:) init: setMotion: beachWalkerPath)
)
(if (not (gGame script:))
(gGame setScript: musicScript)
)
)

(method (notify param1 param2 &tmp temp0)
(switch param1
(0
(= temp0 0)
(while (< temp0 (- argc 2))
((Clone param2)
x: [param2 (++ temp0)]
y: [param2 (++ temp0)]
loop: [param2 (++ temp0)]
init:
)
)
)
(1
(beachWalkerScript register:)
(return)
)
)
)

So here its loading the views for the BikiniLadies and checking to see if the beachWalkerScript is registered and registering it. I don't know what the method is doing really? I can only seem to get the method compiling if I include it after the (method (handleEvent pEvent) section in my RoomScript.

Code: [Select]
(instance closeUpView of View
(properties
y 85
x 265
view 993
loop 4
)

(method (init)
(super init:)
(self hide: setPri: 15)
)

(method (show param1)
(self view: param1 setLoop: 4)
(super show:)
)
)

(instance aBikini3Lady of Act
(properties
view 993
)

(method (init)
(super init:)
(self
setAvoider: Avoid 1
ignoreHorizon:
setCycle: Walk
observeControl: 2048
)
)

(method (handleEvent event)
(cond
((super handleEvent: event))
((IsOffScreen self))
((Said 'look[<at][/woman,brunette,native[<native,brunette]]')
(closeUpView show: view)
(Animate (gCast elements:) 0)
(Print { Whew, what a hot lookin' native girl!})
(closeUpView hide:)
(event claimed: 1)
)
)
)
)

(instance aBikini4Lady of Act
(properties
view 994
)

(method (init)
(super init:)
(self
setAvoider: Avoid 1
ignoreHorizon:
setCycle: Walk
observeControl: 2048
)
)

(method (handleEvent event)
(cond
((super handleEvent: event))
((IsOffScreen self))
((Said 'look[<at][/blond,woman[<blond]]')
(closeUpView show: view)
(Animate (gCast elements:) 0)
(Print {This blonde is definitely a babe.})
(closeUpView hide:)
(event claimed: 1)
)
((Said 'whistle')
(Print {She ignores your ancient ploy.})
)
((Said 'ask<out/woman')
(Print {She is out.})

)
;;; ((Said '[/bitch,cunt,boob,blond,woman[<blond]]>')
;;; (cond
;;; ((Said 'ask//date')
;;; (localproc_0)
;;; )
((Said 'ask//time')
(Print {Time has no meaning in Tahiti.})
)
;;; ((Said 'chase')
;;; (Print 301 18) ; "You can do that."
;;; )
((Said 'talk')
(Print {She's trying to ignore you.})
)
;;; ((Said 'kiss,suck,fuck,touch')
;;; (if (> (gEgo distanceTo: self) 50)
;;; (Print 301 20) ; "You'll have to get closer than this."
;;; else
;;; (QueScript self 353)
;;; )
)
)
)

(instance beachWalkerPath of RegionPath
(properties
value 29
endType 0
theRegion 028
)

(method (at param1)
(return [local1 param1])
)

(method (nextRoom)
(if
(and
(== (self at: (+ 2 value)) 3)
;(== gRoom newRoomNumber: 28) ; volleyRm
(gRoom newRoom: notify: 0)
)
(repeat
(-= value 2)
(breakif (== (self at: (+ 1 value)) 32767))
)
)
(super nextRoom: &rest)
)
)

(instance beachWalkerScript of Script
(properties)

(method (changeState newState &tmp temp0)
(switch (= state newState)
(0
(= temp0
(switch (Random 2 3)
(2 aBikini3Lady)
(3 aBikini4Lady)
)
)
(beachWalkerPath value: -1)
(if (IsObject register)
(register dispose:)
)
(if (== temp0 register)
(self init:)
else
((= register temp0) init: setMotion: beachWalkerPath self)
)
)
(1
(self init:)
)
)
)
)

So the CloseUp is how it shows the portrait of the bikinilady when looking at her.
The BikiniLadies instances seem more or less clear but I can't see how to get them appearing on screen. Everything compiles fine on my script.
Ive added the RegionPath script #809 also to my script folder. I'm not sure if the SC template has a build in one?
The Beachwalker script is more or less clear.

Here is my final roomscript including the Iceman code:

Code: [Select]
;;; Sierra Script 1.0 - (do not remove this comment)
;**
;** Logics for room 027 - Beach 1
;**
;** Leisure Suit Larry 4 - Never say Nontoonyt (AKA The Missing Floppies)
;**        Copyright 2024
;** by Robbo
;**
;** Last Update: March, 27th, 2024
;**
(script# 28)
(include sci.sh)
(include game.sh)
(use Controls)
(use Cycle)
(use Door)
(use Extra)
(use Feature)
(use FileIO)
(use Follow)
(use Game)
(use Gauge)
(use InitRooms)
(use Inv)
(use Rev)
(use Jump)
(use Main)
(use MenuBar)
(use Obj)
(use RegionPath)
(use DPath)
(use Avoid)

(public
rm028 0
)

(local
local0
[local1 113] = [32767 7 273 117 104 132 48 235 32767 5 72 104 135 104 325 184 32767 4 76 95 128 103 325 178 32767 3 -5 90 325 100 32767 2 -5 100 180 160 325 185 32767 12 -5 170 175 156 325 128 32767 13 -5 128 325 106 32767 24 -5 116 184 111 155 72 -5 130 32767 13 325 106 -5 128 32767 12 325 128 175 156 -5 170 32767 2 325 150 -5 100 32767 3 325 100 -5 90 32767 4 325 178 128 103 76 95 32767 5 325 184 135 104 72 104 32767 7 48 235 104 132 273 117 -32768]
)

(procedure (IsOffScreen theObj)
(return
(not (and (< 0 (theObj x:) 320) (< 0 (- (theObj y:) (theObj z:)) 200)))
)
)

(instance rm028 of Rm
(properties
picture 028
north 0
east 0
south 0
west 029
)

(method (init)
(closeUpView init:)
(if (not script)
(self setScript: beachWalkerScript)
)
(if (IsObject (script register:))
((script register:) init: setMotion: beachWalkerPath)
)


(super init:)
(gAddToPics ;This adds views to the background in a much nicer way :)
add: aUmbrella
add: aUmbrella2
add: aFatGuy
add: aLegs
add: aPalm
doit:
)
(self setScript: RoomScript)
(switch gPreviousRoomNumber
)
(cond
((== gPreviousRoomNumber 026) (gEgo posn: 250 63 loop: 0)
)
((== gPreviousRoomNumber 027) (gEgo posn: 239 67 loop: 0)
)
((== gPreviousRoomNumber 029) (gEgo posn: 9 77 loop: 0)
)
(else
(gEgo posn: 150 100 loop: 1)
)
)
(SetUpEgo)
(gEgo init:)
(if (> gMachineSpeed pc8088)
(aWave init:)
(aWave2 init:)
(aBikini3Lady init:)
(aBikini4Lady init:)


)
)
)

(instance RoomScript of Script
(properties)

(method (doit)
(super doit:)
; code executed each game cycle
(if (& ctlBLUE (gEgo onControl:))
(gRoom newRoom: 027)
)
)

(method (handleEvent pEvent)
(super handleEvent: pEvent)
; handle Said's, etc...
)

(method (notify param1 param2 &tmp temp0)
(switch param1
(0
(= temp0 0)
(while (< temp0 (- argc 2))
((Clone param2)
x: [param2 (++ temp0)]
y: [param2 (++ temp0)]
loop: [param2 (++ temp0)]
init:
)
)
)
(1
(beachWalkerScript register:)
(return)
)
)
)

(method (changeState newState)
(= state newState)
(switch state
(0 ; Handle state changes
)
)
)
)

(instance aFatGuy of View ;Kenowama
(properties
view 028
loop 1
cel 0
x 77
y 142
priority 11
signal ignAct ;16384
)
)

(instance aUmbrella of View ;Red umbrella with Kenowama under it.
(properties
view 028
loop 0
cel 0
x 55
y 153
priority 10
signal ignAct ;16384
)
)
(instance aUmbrella2 of View ;Blue umbrella with two pairs of legs bottom right
(properties
view 028
loop 2
cel 0
x 293
y 169
priority 12
signal ignAct ;16384
)
)
(instance aLegs of View ;Pair of legs under blue umbrella bottom right
(properties
view 028
loop 3
cel 0
x 275
y 157
priority 12
signal ignAct ;16384
)
)
(instance aPalm of View ;Palm tree right
(properties
view 028
loop 4
cel 0
x 285
y 131
priority 09
signal ignAct ;16384
)
)

(instance aWave of Prop ; left wave at bottom
(properties
view 28
loop 5
x 78
y 189
cycleSpeed 15
)

(method (init)
(super init:)
(self
setPri: 1
setScript:(if (> gMachineSpeed pcAT)aWaveScript) ;this stops wave script if PC is a IBM AT or slower.
stopUpd:
)
)
)

(instance aWave2 of Prop ;right wave at bottom
(properties
view 28
loop 6
x 238
y 189
cycleSpeed 15
)

(method (init)
(super init:)
(self
setPri: 1
setScript:(if (> gMachineSpeed pcAT)aWaveScript) ;this stops wave script if PC is a IBM AT or slower.
stopUpd:
)
)
)
(instance aWaveScript of Script ;Here the two wave views are merged together and played at the same time.
  (method (changeState newState)
    (switchto (= state newState)
      (
        (aWave stopUpd:)
        (aWave2 stopUpd:)
        ; Wait for 2 to 6 seconds...
        (= seconds (+ 1 (* (Random 0 3) 2)))
      )
      (
        ; Setting a cycler automatically restarts updating.
        (aWave setCycle: Fwd self)
        (aWave2 setCycle: Fwd self)
      )
      (
        (aWave setCycle: Rev self)
        (aWave2 setCycle: Rev self)
      )
      (
        ; Repeat.
        (self changeState: 0)
        ; A better way might be to (= state -1) (= cycles 1) but nyehh.
      )
    )
  )
)

(instance closeUpView of View
(properties
y 85
x 265
view 993
loop 4
)

(method (init)
(super init:)
(self hide: setPri: 15)
)

(method (show param1)
(self view: param1 setLoop: 4)
(super show:)
)
)

(instance aBikini3Lady of Act
(properties
view 993
)

(method (init)
(super init:)
(self
setAvoider: Avoid 1
ignoreHorizon:
setCycle: Walk
observeControl: 2048
)
)

(method (handleEvent event)
(cond
((super handleEvent: event))
((IsOffScreen self))
((Said 'look[<at][/woman,brunette,native[<native,brunette]]')
(closeUpView show: view)
(Animate (gCast elements:) 0)
(Print { Whew, what a hot lookin' native girl!})
(closeUpView hide:)
(event claimed: 1)
)
)
)
)

(instance aBikini4Lady of Act
(properties
view 994
)

(method (init)
(super init:)
(self
setAvoider: Avoid 1
ignoreHorizon:
setCycle: Walk
observeControl: 2048
)
)

(method (handleEvent event)
(cond
((super handleEvent: event))
((IsOffScreen self))
((Said 'look[<at][/blond,woman[<blond]]')
(closeUpView show: view)
(Animate (gCast elements:) 0)
(Print {This blonde is definitely a babe.})
(closeUpView hide:)
(event claimed: 1)
)
((Said 'whistle')
(Print {She ignores your ancient ploy.})
)
((Said 'ask<out/woman')
(Print {She is out.})

)
;;; ((Said '[/bitch,cunt,boob,blond,woman[<blond]]>')
;;; (cond
;;; ((Said 'ask//date')
;;; (localproc_0)
;;; )
((Said 'ask//time')
(Print {Time has no meaning in Tahiti.})
)
;;; ((Said 'chase')
;;; (Print 301 18) ; "You can do that."
;;; )
((Said 'talk')
(Print {She's trying to ignore you.})
)
;;; ((Said 'kiss,suck,fuck,touch')
;;; (if (> (gEgo distanceTo: self) 50)
;;; (Print 301 20) ; "You'll have to get closer than this."
;;; else
;;; (QueScript self 353)
;;; )
)
)
)

(instance beachWalkerPath of RegionPath
(properties
value 29
endType 0
theRegion 028
)

(method (at param1)
(return [local1 param1])
)

(method (nextRoom)
(if
(and
(== (self at: (+ 2 value)) 3)
;(== gRoom newRoomNumber: 28) ; volleyRm
(gRoom newRoom: notify: 0)
)
(repeat
(-= value 2)
(breakif (== (self at: (+ 1 value)) 32767))
)
)
(super nextRoom: &rest)
)
)

(instance beachWalkerScript of Script
(properties)

(method (changeState newState &tmp temp0)
(switch (= state newState)
(0
(= temp0
(switch (Random 2 3)
(2 aBikini3Lady)
(3 aBikini4Lady)
)
)
(beachWalkerPath value: -1)
(if (IsObject register)
(register dispose:)
)
(if (== temp0 register)
(self init:)
else
((= register temp0) init: setMotion: beachWalkerPath self)
)
)
(1
(self init:)
)
)
)
)


36
SCI Syntax Help / Re: MachineSpeed syntax on real hardware
« on: May 13, 2024, 04:50:51 PM »
Thanks for that. Got it working now. :)

37
SCI Syntax Help / Re: MachineSpeed syntax on real hardware
« on: May 02, 2024, 05:30:42 PM »
ok, getting some weird stuff happening now. It seems it does not end the speed checker correctly before starting my normal title script code.
I've added the speed checker code (method (init) to the start of my Instance of TitleSCreen of Rm and my normal titlescreen Method is after it. 

Is that the correct way to do it? Have multiple methods ?


Code: [Select]
(instance TitleScreen of Rm
(properties
picture 800;scriptNumber 800
)

(method (init)
(ProgramControl)
(= gProgramControl FALSE)
(SL disable:)
(TheMenuBar hide:)
(super init:)
(gEgo
view: 290
posn: 20 100
setStep: 1 1
setMotion: MoveTo 3000 100
setCycle: Walk ;even though view.290 has only one frame, the overhead of a Cycler makes the simulation more realistic.
init:
)
(gGame setSpeed: 0)
)

(method (doit)
(super doit:)
;EO: The reason for the speed bugs is that
; the speed tester didn't account for newer machines.
; Later games fixed this by using the howFast global,
; with only a few possible values and an upper limit.
(if (== (++ gMachineSpeed) 1)
(= doneTime (+ 60 (GetTime))) ; 60 ticks have elapsed; set up the game
)
(if (< doneTime (GetTime))
(gGame setSpeed: 6) ;do you really need the debug alternative?
(= gTimeSeconds 0)
(= gTimeMinutes 0)
(= gTimeHours 0)
(= gEgoView 0)
;(TheMenuBar draw:)
;(PlayerControl)
;(SL enable:)
;;; (if (!= -1 gDebugStartRoom)
;;; (DebugRoomInit gDebugStartRoom)
;;; ; The debug start room
;;; (gRoom newRoom: gDebugStartRoom)
;;; else
; The normal start room
;(gRoom newRoom: 29) ;Start ego at Vivir Sin Dormir

;;; )
;;; )
;;;
)

)
(method (init)
; Set up the title screen
(= gDefaultPalette 0)
(ProgramControl)
(= gProgramControl TRUE)
(gGame setSpeed: 4)
(SL disable:)
(SetCursor gLoadingCursor (HaveMouse))
(TheMenuBar hide:)
(super init:)
(self setScript: RoomScript)
(gEgo init: hide:)
;(theTitle init: hide:) ;taken out not needed
;(theTitle2 init: hide:) ;taken out not needed
(if (> gMachineSpeed pc386)) ;this stops wave script if PC is a IBM AT
(theSpark1 init: setCycle: End)
(if (> gMachineSpeed pc386)) ;this stops wave script if PC is a IBM AT
(theSpark2 init: setCycle: Fwd)
(theSpark3 init:)
)
)

EDIT: I've also tried creating a new instance called TitleScreen2 and changing the order in the public syntax. I'm not sure how to stop and instance statement and make it goto the second instance statement? As it loads the speed checker code but does not then continue to the next instance.

Code: [Select]
(public
TitleScreen 1
TitleScreen2 0
)

38
SCI Syntax Help / Re: MachineSpeed syntax on real hardware
« on: May 01, 2024, 11:26:23 AM »
So I've advanced a little more since this original posting. The machine speed code work perfectly throughout my rooms. I've now setup the following scripts to start my game in order.

1. Title script 800 holds the title sequence which has some animations I need to speed check. It stops at a menu to start the game.
2. Then start is pressed it loads script 799 which is my age check and trivia script. Once complete.
3. Loads Initrooms_script which does my speed check for slower systems then starts the game with room 029.

I need to also be able to apply the gMachineSpeed to the Titlescript animations as on slower systems its too slow. As I'm running the speed check after the titlescript its obliviously not working. What other scripts are loaded before the titlescript? Should I add the speed check code to the start of the titlescript so it runs that first before anything else? Or is there a better way to do this?

Regards,


39
SCI Development Tools / Re: View size limits
« on: March 27, 2024, 07:06:14 PM »
ok thanks. As always I have worked out a work around. But I was curious to know what was going on so I can avoid creating more work for myself in the future. Al Lowe was right when he said.; "No one know how much work really go into these games..."

Yeah if I ever finish this debacle I might have to go to the next level, 256 colours hahah.. Shit I would have to buy a VGA card for my IBM.... haha.

BTW: Did SCI1 make it to Amiga and Atari ST?

40
SCI Development Tools / View size limits
« on: March 27, 2024, 06:08:16 PM »
Hi everyone,
What type of size restrictions / limits does a view have? I'm seeing some strange things happening. I have a 320x45 loop in my view that has 4 cels of animation. The total size of the view with other loops is: 50921 bytes. Its displayed like this. (See attachment)

If I cut cel into two and create another loop with the second half it works fine.

Regards,

41
I love the audio and music!!! Top blues solo... Amen!

42
SCI Development Tools / Re: Importing BMP into SciCompanion problems
« on: March 18, 2024, 05:11:59 PM »
I'm having a problem with this feature in Vista in SCICompanion 3. I click on the "Browse" button to select an image, select one of my images (I've tried JPEG, BMP and PNG format) and no image is previewed on the left-hand side of the window and the controls are all greyed-out. If Vista is not supported any more then fair enough. I've also tried copying images from the clipboard (copying from Paint first) and that does seem to work.

Hi,
The only reason I'm using Windows XP is because I run it as a VM. Windows XP is a 2GB VM compared to 40GB with Windows 7. No point in running something like Windows Vista. Go either Windows 7+ or Windows XP like me :)

43
Ok thanks, yeah I did sort of see that. I wonder if Phil will optimise the import algorithm at some point.  Being able to use external tools to draw the BMP's is a massive advantage. I'll have to hack and chop these backgrounds and see if SC will take them.

I was trying to be clever by creating a "matrix" design where I could use 6 basic backgrounds with various views chopped up like rocks, trees etc and then build about 30 rooms with these parts. Thus reducing the over all size of the resource.000. My resource.000 is 4MB at present and can grow to about 8mb tops as I want to ship this on 5 1/4" floppy disks. So size is the limiting form factor here.

Vector drawing is obviously the way to go but not an option in my case :(
 

44
SCI Development Tools / SCI0 picture size limits when importing from bmp
« on: February 22, 2024, 06:05:41 PM »
Hi guys,
I've been using Aseprite to draw my pictures as its a lot faster than using the built in drawing tools in SC. Size and disk space restrictions are posing to be a real challenge for my game.

Does anyone know the ins and outs of Phil's algorithm that converts BMP to vector? I've got two backgrounds that look visually very similar. One imports fine using 65120 bytes and the other is using 72228 bytes when imported. Too big for SCI0.  What things influence the size increase? Is it a certain colour? The dithering, or certain shapes? Here are my examples:

b-top-down.bmp imports using 65120 bytes and b-top-left.bmp import using 72228 bytes..

I add views to these basic background pictures to spice them up a little. Rocks, trees and other things...




45
SCI Development Tools / Re: Add Set palette:0 to picture
« on: January 17, 2024, 05:31:29 PM »
Perfect thanks :)

Pages: 1 2 [3] 4 5 ... 8

SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.042 seconds with 20 queries.