I Found the bug.
I moved the problem include, 1 position down in the list of includes 1 at a time, until it started to work.
Then I went over the last include I leapfrogged, mymove3_c.wdl, with a fine tooth comb.

I'm now Eating a heafty chunk of humble pie.
In my code the Player pointer had been re-defined with:-
Entity* player;

I take most of the blame, however the old templates are what caused it in the first place.
Now because my code is converted from version to version, this has snuck in from the old A5 templates where the conitec template code actually reads:-
//SYNONYM player { TYPE ENTITY; }
//SYNONYM temp_ent { TYPE ENTITY; }
//SYNONYM carry { TYPE ACTION; }
entity* player; // pointer to player entity
entity* temp_ent;
action* carry;
inside movement.wdl!

Obviously re-defining the player pointer will cause mass confusion to the same pointer references before this, in A7, however it must have been a requirement in A5?
I was certain it was something to do with the engine because it only happenned after the A7 upgrade.

Thankyou very much JCL, for your help with this, sorry for wasting your time.

I had searched player== player= etc. across all files, however my editors search doesn't allow * char to find pointers.

You can safely remove this from the Bug list now.

Thanks again Jethro.