What kind of side-scrolling do you want? I would suggest...
Divide your main map into say, a 16x16 grid. when the player is in one of these areas, you load the data of the map into the array. This should keep the array size reasonably small, depending on the size of your map - if you still find you're loading overwhelming amounts, then up the dimensions of the grid.
If you want it so it displays just one area and then it displays a new one, then just alter the grid to give sections the size of the screen, and then just choose the one you want to show. *EASY OPTION*
If you want square-by-square scrolling (player moves one square, whole screen shifts by one square), then just choose the first square (top-left) you want to be shown, then just the number of squares for the X axis to give you the end of the X lot, and the same for the Y. For example, for a 10x10 square with the top left being 12,32 in the array (x,y) then you would choose the elements 12-22 and 32-42 from the array. Then what you have to do is whenever the user moves a square, you need to just move the starting one in the correct X and Y direction. *MEDIUM OPTION*
Of course, that looks pants, and so you want a nice fancy, constant scrolling one that will blend as it goes. You know you like it.
This works on the same strategy as the one above, but you need some extra images and extra array space. You store one or two extra squares in all directions - this means that you have say, 2 hidden squares (essentially still shown, but behind something). Then what you do is you produce a 3 square thick load of black(if that's your background). You put this black on all sides - it allows you to hide those squares. Then, when your user moves right, you shift the whole thing in a smooth movement in the moving direction. You then move the showing grid in the opposite direction:
BEFORE
_ = hidden squares
- = squares
P = player
_ _----P----_ _
MOVE TO EDGE AND MOVE GRID...
_--------P_ _ _
RE-SET GRID
_ _----P----_ _
Now if you under stand that rubbish, then you must be able to do it
To your battle window with selectable options...
If you mean something along the lines of the turn-based final fantasy-esque battle window, then this shouldn't be too hard. animations are just pre-programmed sprites which you tell how to move, where to appear, etc. for the menu options, if you can create a menu then you can create these. Just specify a variable to handle which option is selected, and the key to select it. if you want it to the stage where you want it to first choose an action and then what to do, then just have something along the lines of a WindowStage variable - to allow you to ascertain what phase it is of the selection and tell it what to draw. For item lists such as potions, etc. (I'm assuming you're gonna have battle items i.e potions, amulets, etc.) have a struct with Item Name, Current Quantity, Buy Price, Sale Price and whether or not it can be used in battle (string, integer, integer, integer and boolean respectively) and then just loop through them all and choose to draw the ones where it is usable in battle. keep the 'selection' variable to the number in the struct and not the number in the list, though if possible. Will save a bit of trouble with trying to identify the item
Now if you've understood ANY of the garbage that I have just spewed, please try it an tell me how it works and what kind of slowdown you get. some seem to me a little PC-intensive.
Mit, any comments? Have I missed one big workaround for all this that only takes four lines of code?